如何讓UIScrollerview的提示滾動(dòng)條一直顯示

最近項(xiàng)目有個(gè)需求桃熄,實(shí)現(xiàn)滑動(dòng)視圖(比如scrollerview)的滾動(dòng)條一直顯示着茸,初步以為很簡單,結(jié)果加上查閱資料樟澜,花了很長時(shí)間才解決這個(gè)問題误窖,在這里跟大家做個(gè)簡單的分享。之前查閱的資料往扔,都?xì)w結(jié)為SetAlpha,貼出一個(gè)比較有代表性的代碼片段(截圖,感興趣的可以去網(wǎng)上搜)熊户。

#define noDisableVerticalScrollTag 836913 
#define noDisableHorizontalScrollTag 836914 
 
@implementation UIImageView (ForScrollView) 
 
- (void) setAlpha:(float)alpha { 
    
    if (self.superview.tag == noDisableVerticalScrollTag) { 
        if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleLeftMargin) { 
            if (self.frame.size.width < 10 && self.frame.size.height > self.frame.size.width) { 
                UIScrollView *sc = (UIScrollView*)self.superview; 
                if (sc.frame.size.height < sc.contentSize.height) { 
                    return; 
                } 
            } 
        } 
    } 
    
    if (self.superview.tag == noDisableHorizontalScrollTag) { 
        if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleTopMargin) { 
            if (self.frame.size.height < 10 && self.frame.size.height < self.frame.size.width) { 
                UIScrollView *sc = (UIScrollView*)self.superview; 
                if (sc.frame.size.width < sc.contentSize.width) { 
                    return; 
                } 
            } 
        } 
    } 
    
    [super setAlpha:alpha]; 
} 
@end 

這個(gè)方法寫的好像蠻有邏輯萍膛,我嘗試了一下沒有成功(可能是因?yàn)槲耶?dāng)時(shí)在scrollerview的父視圖的XIB文件上創(chuàng)建的imageview?)嚷堡,索性換了一個(gè)寫法蝗罗,我個(gè)人覺得是比較合適的艇棕,具體邏輯如下:
1?.將原有的showsVerticalScrollIndicator屬性設(shè)置為NO,隱藏了原有的滾動(dòng)提示條。
2?.在XIB文件上創(chuàng)建一個(gè)Imageview ,設(shè)置顏色串塑,準(zhǔn)備用它來做指示滾動(dòng)條沼琉,設(shè)置顏色初始位置等(代碼創(chuàng)建也可以)。
3?.在系統(tǒng)的這個(gè)方法里面- (void)scrollViewDidScroll:(UIScrollView *)scrollView桩匪,根據(jù)scrollerview或者collectionview的Contentsize做邏輯運(yùn)算(只要在拖動(dòng)的時(shí)候就會(huì)執(zhí)行這個(gè)方法)打瘪。
4?.將試圖外滾動(dòng)條的多余部分做成不顯示的效果。
以上就是較為簡單的邏輯傻昙,下面是代碼的實(shí)現(xiàn)部分:
創(chuàng)建完畢后(_mCollectionView是需要一直顯示滾動(dòng)條的scrollerview闺骚,_mImageIndicator是用xib創(chuàng)建的imageview類型的指示條),實(shí)現(xiàn)代理方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

//    CGPoint contentCenter=_mCollectionView.contentOffset;

//    NSLog(@"原點(diǎn)%@",NSStringFromCGPoint(contentCenter));

//    _mImageIndicator.center=CGPointMake(_mImageIndicator.center.x, contentCenter.y);

float zoom = 0;

zoom= scrollView.contentOffset.y/(scrollView.contentSize.height -scrollView.frame.size.height+(_mImageIndicator.frame.size.height-_mImageIndicator.frame.size.height*scrollView.frame.size.height/scrollView.contentSize.height));

_mImageIndicator.frame=CGRectMake(_mCollectionView.frame.size.width-3,zoom*scrollView.contentSize.height*216/kScreenHeight,3,_mImageIndicator.frame.size.height);

NSLog(@"offset.y:%f",scrollView.contentOffset.y);
NSLog(@"indicator.y:%f",_mImageIndicator.frame.origin.y);

}

216/kScreenHeight這個(gè)是scrollerview本身的寬度和屏幕寬度的比例(如果你的scrollerview或者collectionview展示滿了整個(gè)屏幕妆档,那就不需要乘以這個(gè)比例)

Demoviewcontroller是collectionview的父視圖僻爽,設(shè)置它的clipsToBounds屬性為YES,讓指示條的多余部分不顯示即可。

運(yùn)行贾惦,完美實(shí)現(xiàn)功能胸梆,首篇簡書,歡迎指正0.0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末须板,一起剝皮案震驚了整個(gè)濱河市碰镜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逼纸,老刑警劉巖洋措,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異杰刽,居然都是意外死亡菠发,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門贺嫂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滓鸠,“玉大人,你說我怎么就攤上這事第喳∶铀祝” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵曲饱,是天一觀的道長悠抹。 經(jīng)常有香客問我,道長扩淀,這世上最難降的妖魔是什么楔敌? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮驻谆,結(jié)果婚禮上卵凑,老公的妹妹穿的比我還像新娘庆聘。我一直安慰自己,他們只是感情好勺卢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布伙判。 她就那樣靜靜地躺著,像睡著了一般黑忱。 火紅的嫁衣襯著肌膚如雪宴抚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天杨何,我揣著相機(jī)與錄音酱塔,去河邊找鬼。 笑死危虱,一個(gè)胖子當(dāng)著我的面吹牛羊娃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播埃跷,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼蕊玷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弥雹?” 一聲冷哼從身側(cè)響起垃帅,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剪勿,沒想到半個(gè)月后贸诚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厕吉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年酱固,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片头朱。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡运悲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出项钮,到底是詐尸還是另有隱情班眯,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布烁巫,位于F島的核電站署隘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏亚隙。R本人自食惡果不足惜磁餐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恃鞋。 院中可真熱鬧崖媚,春花似錦、人聲如沸恤浪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽水由。三九已至荠呐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砂客,已是汗流浹背泥张。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鞠值,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓彤恶,卻偏偏與公主長得像钞钙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子声离,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫芒炼、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,022評論 4 62
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,708評論 22 664
  • 整合知識(shí) 有一個(gè)詞常用來形容我們這個(gè)時(shí)代,那就是“信息過載”赠涮。 的確子寓,我們每天都被各種各樣的信息包圍著,也接收了許...
    火燒風(fēng)閱讀 736評論 4 29
  • 詩到多時(shí)誰記得世囊?總之歌詠無窮别瞭。此心一片幾人同?覓來都不似株憾,笑我自成風(fēng)蝙寨。 不斷翻新唯獨(dú)是,何曾胸腹空空嗤瞎。萬千風(fēng)物入望...
    雪窗_武立之閱讀 481評論 6 8
  • 從小到大墙歪,我身邊親密的人也包括我自己都覺得我是一個(gè)天生的感官敏銳,心思細(xì)膩超乎常人的人贝奇。雖然個(gè)別人有點(diǎn)不...
    一杯WhiSky閱讀 905評論 2 1