亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS自定義UIScrollView的滾動條實例代碼

2020-07-26 02:53:49
字體:
來源:轉載
供稿:網友

UIScrollView有自己默認的滾動條,可設置隱藏和顯示,但是有時候這個默認的滾動條沒辦法滿足我們的需求,那這時候只能通過自定義來實現了。 實現自定義滾動條需要解決的主要問題是:

在scrollview滾動的過程中如何改變滾動條的位置,進而確保滾動條和scrollView在相同時間內走完自己的位移,只要把這個問題解決好了,那我們就可以優雅的自定義滾動條了。

那如何解決這個滾動條的當前滾動位移呢?我們知道,UIScrollView有一個滾動范圍,滾動條也有一個滾動范圍,也就是說兩者的最大的滾動位移是固定的,那要想兩者在相同時間內走完自己的位移,只需要確保兩者的當前滾動位移和總位移之比一致就行。也就是說:

scrollView的當前位移/scrollView的總位移=滾動條的當前位移/滾動條的總位移

得到這個關系后,想要知道滾動條的當前位移,就不是什么難事了。我們可以通過UIScrollView的代理方法獲取scrollview的當前滾動位移,scrollview的總位移和滾動條的總位移是固定的,那顯然我們可以方便的得出滾動條的當前位移,這樣,得到了滾動條的當前位移,我們就可以通過改變滾動條的frame,進而實現讓滾動條跟隨scrollview滾動。

但是這里需要注意一點,因為這個位移是相對位移,所以在修改滾動條的frame時,要記得加上滾動條距離相對的參考系的左邊距離,這樣才是其真正的位移。比如現在滾動條的x是從屏幕左邊15開始的,滾動條的滾動范圍是屏幕寬度減去30,那么當你以屏幕寬度減去30這個數值作為滾動條的滾動總位移,進而算出滾動條的當前位移時,需要加上距離左邊的15才是滾動條真正的位移。

接下來看一下代碼的具體實現吧:

一、創建scrollview:(記得簽代理UIScrollViewDelegate)

-(UIScrollView *)scrollView{  if (!_scrollView) {    _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 164, self.view.frame.size.width, 233)];    _scrollView.delegate = self;    _scrollView.scrollEnabled = YES;    _scrollView.bounces = NO;    _scrollView.showsHorizontalScrollIndicator=NO;    _scrollView.layer.shadowColor = [UIColor redColor].CGColor;//shadowColor陰影顏色    _scrollView.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset陰影偏移,x向右偏移,y向下偏移    _scrollView.layer.shadowOpacity = 0.5;//陰影透明度,默認0    _scrollView.layer.shadowRadius = 3;//陰影半徑,默認3  }  return _scrollView;}

二、創建自定義的滾動條以及在scrollview上加點內容:

-(void)loadView{  [super loadView];  [self.view addSubview:self.scrollView];  slideBackView=[[UIView alloc] initWithFrame:CGRectMake(15, _scrollView.frame.origin.y+_scrollView.frame.size.height+20, self.view.frame.size.width-30, 8)];  [self.view addSubview:slideBackView];  slideBackView.backgroundColor = [UIColor colorWithRed:0.91 green:0.91 blue:0.91 alpha:1.00];  slideBackView.layer.cornerRadius = 4;  sliderView = [[UIView alloc] init];  [self.view addSubview:sliderView];  sliderView.frame=CGRectMake(slideBackView.frame.origin.x, slideBackView.frame.origin.y+(slideBackView.frame.size.height-7 )/2, 40 , 7 );  sliderView.backgroundColor =[UIColor colorWithRed:0.12 green:0.72 blue:0.88 alpha:1.00];  sliderView.layer.cornerRadius = 3.5; NSArray *textDesArr=@[@"• 產品戰略規劃:市場目標、用戶目標、關鍵成功要素分析、管理和運用自己的資源來達成目標/n• 產品戰略實施:有損原則、平衡原則、聚焦原則/n• 產品需求文檔:實例講解,牛逼的需求文檔是怎么誕生的/n• 主動:戰略思考、資源爭取/n• 推動:項目立項、迭代跟蹤/n• 溝通:上傳下達、思想一統/n• 平衡:各方協調、跨部溝通/n• 把控:管理得法、取舍有道",          @"• 用戶思維:具體案例解析/n• 運營思維:具體案例解析/n• 數據思維:具體案例解析/n• 產品經理的用研能力模型/n• 用戶研究基本概念解析/n• 用研基礎搭建及建設/n• 用研人員分工及工作職責細分"          @"• 常用用戶研究方法詳解/n• 桌面研究、定性研究、定量研究三種方法舉例講解及詳細步驟解析/n• 卡諾模型/n• 戰略級的市場及用戶研究/n• 以科學的方法在產品整個生命周期中進行“研究”",          @"• 品生命周期用戶研究側重點以及研究方法解讀/n• 產品用研規劃建立/n• 在產品不同生命周期,側重不同用研方法,更準確進行產品迭代",          @"• 格局:大格局思維,聚焦做實事/n• 決策:讓瑣碎的運營變有趣,“舍得”之道/n• owner精神:有狼性/n• 敏銳:“細節”出真知/n• 商業素養",          @"• 高情商:做個讓人感覺“舒適”的資深運營/n• 凝聚力:1+1>2,善用團隊用人所長,沒有完美的個人,只有優秀的團隊/n• 影響力:在互聯網領域成為運營專家,沉淀經驗,讓成功有跡可循/n• 知識傳承力:資深運營的價值,不是個人優秀,而是讓人人優秀。",          @"• 數據運營體系的構成/n• 數據規范與平臺/n• 數據運營體系結構/n• 數據數據平臺構建/n• 核心數據指標/n• 移動端產品數據埋點范例/n• 數據需求指標/n• 產品關鍵數據/n• 數據運營體系的構成",            ];  NSInteger contentCount=textDesArr.count;  for (NSInteger i = 0; i <contentCount; i++) {      UILabel *textDesLabel=[[UILabel alloc] initWithFrame:CGRectMake(10+190 *i,0, 180 , 233 )];      [_scrollView addSubview:textDesLabel];      textDesLabel.textColor=[UIColor colorWithRed:0.49 green:0.49 blue:0.49 alpha:1.00];      textDesLabel.font = [UIFont systemFontOfSize:12 ];      textDesLabel.text = textDesArr[i];      textDesLabel.numberOfLines = 0;      textDesLabel.layer.borderWidth = 0.5;      textDesLabel.layer.borderColor = [UIColor colorWithRed:0.91 green:0.91 blue:0.91 alpha:1.00].CGColor;      textDesLabel.backgroundColor = [UIColor whiteColor];  }  //scrollView的滾動范圍  _scrollView.contentSize = CGSizeMake(190*contentCount+10, 0);}

三、在UIScrollView的代理滾動方法中修改滾動條的當前位移:

這里是以自定義橫向滾動條為例,豎向滾動條也是一樣的原理。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{  [UIView animateWithDuration:0.5 animations:^{    CGPoint offset = scrollView.contentOffset;    // scrollView的當前位移/scrollView的總位移=滑塊的當前位移/滑塊的總位移    //    offset/(scrollView.contentSize.width-scrollView.frame.size.width)=滑塊的位移/(slideBackView.frame.size.width-sliderView.frame.size.width)    //    滑塊距離屏幕左邊的距離加上滑塊的當前位移,即為滑塊當前的x    CGRect frame=sliderView.frame;    frame.origin.x=15 + offset.x*(slideBackView.frame.size.width-sliderView.frame.size.width)/(scrollView.contentSize.width-scrollView.frame.size.width);    sliderView.frame = frame;  }];}

這樣,自定義的滾動條就實現了。效果如圖

另外,在這里提一下陰影的使用方法,有時候我們需要加一些陰影效果,怎么加呢?

主要用到layershadowColor(陰影顏色) 、shadowOffset ()陰影大小、hadowOpacity (陰影透明度)、shadowRadius(陰影圓角)這幾個屬性

如:

    _scrollView.layer.shadowColor = [UIColor redColor].CGColor;//shadowColor陰影顏色    _scrollView.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset陰影偏移,x向右偏移,y向下偏移    _scrollView.layer.shadowOpacity = 0.5;//陰影透明度,默認0    _scrollView.layer.shadowRadius = 3;//陰影半徑,默認3

下載地址:CustomScrollViewSliderView_jb51.rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热精品视频在线免费观看| 亚洲女人天堂色在线7777| 欧美激情成人在线视频| 在线国产精品视频| 欧美性猛交xxxx免费看漫画| 久久精品久久精品亚洲人| 国产日韩精品入口| 国产视频一区在线| 国产精品视频公开费视频| 91久久国产综合久久91精品网站| 日韩av免费观影| 亚洲第一精品夜夜躁人人躁| 国内精品视频在线| 国产精品久久视频| 国色天香2019中文字幕在线观看| 成人淫片在线看| 欧美成人午夜剧场免费观看| 欧美日韩一区二区免费视频| 国产精品视频自在线| 米奇精品一区二区三区在线观看| 欧美日韩视频在线| 欧美老女人www| 久久久久国产精品免费网站| 午夜剧场成人观在线视频免费观看| 久久躁日日躁aaaaxxxx| 国产精品香蕉av| 91精品久久久久久久久| 精品视频久久久| 国产日产亚洲精品| 亚洲精品国产拍免费91在线| 精品国产乱码久久久久久天美| 国产成人精品在线视频| 欧美日韩黄色大片| 国产视频精品一区二区三区| 国产精品伦子伦免费视频| 日韩欧美在线视频免费观看| 亚洲一区二区在线| 中文字幕亚洲一区二区三区| 久久免费少妇高潮久久精品99| 国产a级全部精品| 成人精品在线观看| 91在线高清免费观看| 亚洲人成在线电影| 亚洲色图色老头| 亚洲视频在线免费观看| 久久乐国产精品| 精品久久香蕉国产线看观看gif| 精品久久久久久久久国产字幕| 91av视频在线播放| 亚洲乱码国产乱码精品精天堂| 久久综合久中文字幕青草| 国产主播在线一区| 国产自产女人91一区在线观看| 成人久久久久爱| 色综合视频一区中文字幕| 久久人人爽国产| 欧美电影免费观看高清| 久久av在线播放| 亚洲伊人久久大香线蕉av| 久久成人人人人精品欧| 国产精品久久久久av免费| …久久精品99久久香蕉国产| 亚洲精品美女久久久久| 欧美性视频网站| 国产成人精品999| 日韩欧美主播在线| 97在线精品视频| 欧美激情按摩在线| 亚洲女人天堂视频| 欧美视频在线观看免费| 美女扒开尿口让男人操亚洲视频网站| 亚洲老板91色精品久久| 97婷婷大伊香蕉精品视频| 国产香蕉精品视频一区二区三区| 久久久久女教师免费一区| 日本精品久久电影| 2018中文字幕一区二区三区| 91免费在线视频| 欧美国产第一页| 亚洲综合一区二区不卡| 国产精品扒开腿爽爽爽视频| 欧美俄罗斯性视频| 欧美国产极速在线| 欧美久久久精品| 欧美制服第一页| 国产不卡一区二区在线播放| 欧美又大又粗又长| 亚洲精品福利视频| 欧美精品日韩三级| 亚洲精品美女在线| 欧美性生交大片免网| 欧美成人性色生活仑片| 97av在线视频免费播放| 日本久久久久久久久| 欧美亚洲日本黄色| 亚洲国产精品va在线| 国产香蕉一区二区三区在线视频| 亚洲欧美三级伦理| 国产亚洲精品va在线观看| 日韩小视频在线| 北条麻妃一区二区在线观看| 91在线国产电影| 一区二区三区精品99久久| 欧美成人午夜激情| 日日噜噜噜夜夜爽亚洲精品| 亚洲欧美国产精品专区久久| 久久久免费av| 国内精品久久久| 欧美日韩中文在线观看| 这里只有精品在线观看| 91sao在线观看国产| 免费99精品国产自在在线| 日日噜噜噜夜夜爽亚洲精品| 国产精品久久久久一区二区| 91在线视频精品| 亚洲国产毛片完整版| 日韩av网址在线观看| 亚洲第一男人天堂| 97人人模人人爽人人喊中文字| 伊人久久大香线蕉av一区二区| 久久久亚洲精品视频| 日韩精品中文字幕在线观看| 成人观看高清在线观看免费| 黑人极品videos精品欧美裸| 97av视频在线| 成人黄色午夜影院| 久久人人97超碰精品888| 欧美在线一级va免费观看| 久久青草福利网站| 亚洲精品中文字幕av| 久久精品电影一区二区| 亚洲精品动漫久久久久| 国产午夜精品全部视频播放| 久久理论片午夜琪琪电影网| 欧美成人在线影院| 国产91成人在在线播放| 亚洲成人网av| 亚洲欧美日本另类| 日韩成人在线电影网| 日韩精品中文字幕久久臀| 日韩视频一区在线| 亚洲欧美激情四射在线日| 亚洲无线码在线一区观看| 亚洲美女av电影| 亚洲女人被黑人巨大进入al| 日韩av综合网站| 在线电影中文日韩| 日韩在线免费观看视频| 91久久夜色精品国产网站| 欧美亚洲日本网站| 久久久久久久亚洲精品| 亚洲人午夜精品| 午夜欧美大片免费观看| 91国语精品自产拍在线观看性色| 欧美国产中文字幕| 欧美激情在线观看视频| 欧美有码在线观看| 国产97人人超碰caoprom| 久久久久国产一区二区三区| 欧美激情精品久久久久久久变态| 国产精品入口福利| 国产精品成人在线| 欧美国产日韩中文字幕在线| 国产日产欧美a一级在线|