最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS自定義UIScrollView的滾動(dòng)條實(shí)例代碼

 更新時(shí)間:2017年03月15日 11:36:46   作者:若錦  
本篇文章主要介紹了iOS自定義UIScrollView的滾動(dòng)條實(shí)例代碼,詳細(xì)的介紹了自定義滾動(dòng)條的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

UIScrollView有自己默認(rèn)的滾動(dòng)條,可設(shè)置隱藏和顯示,但是有時(shí)候這個(gè)默認(rèn)的滾動(dòng)條沒(méi)辦法滿足我們的需求,那這時(shí)候只能通過(guò)自定義來(lái)實(shí)現(xiàn)了。 實(shí)現(xiàn)自定義滾動(dòng)條需要解決的主要問(wèn)題是:

在scrollview滾動(dòng)的過(guò)程中如何改變滾動(dòng)條的位置,進(jìn)而確保滾動(dòng)條和scrollView在相同時(shí)間內(nèi)走完自己的位移,只要把這個(gè)問(wèn)題解決好了,那我們就可以優(yōu)雅的自定義滾動(dòng)條了。

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

scrollView的當(dāng)前位移/scrollView的總位移=滾動(dòng)條的當(dāng)前位移/滾動(dòng)條的總位移

得到這個(gè)關(guān)系后,想要知道滾動(dòng)條的當(dāng)前位移,就不是什么難事了。我們可以通過(guò)UIScrollView的代理方法獲取scrollview的當(dāng)前滾動(dòng)位移,scrollview的總位移和滾動(dòng)條的總位移是固定的,那顯然我們可以方便的得出滾動(dòng)條的當(dāng)前位移,這樣,得到了滾動(dòng)條的當(dāng)前位移,我們就可以通過(guò)改變滾動(dòng)條的frame,進(jìn)而實(shí)現(xiàn)讓滾動(dòng)條跟隨scrollview滾動(dòng)。

但是這里需要注意一點(diǎn),因?yàn)檫@個(gè)位移是相對(duì)位移,所以在修改滾動(dòng)條的frame時(shí),要記得加上滾動(dòng)條距離相對(duì)的參考系的左邊距離,這樣才是其真正的位移。比如現(xiàn)在滾動(dòng)條的x是從屏幕左邊15開(kāi)始的,滾動(dòng)條的滾動(dòng)范圍是屏幕寬度減去30,那么當(dāng)你以屏幕寬度減去30這個(gè)數(shù)值作為滾動(dòng)條的滾動(dòng)總位移,進(jìn)而算出滾動(dòng)條的當(dāng)前位移時(shí),需要加上距離左邊的15才是滾動(dòng)條真正的位移。

接下來(lái)看一下代碼的具體實(shí)現(xiàn)吧:

一、創(chuàng)建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;//陰影透明度,默認(rèn)0
    _scrollView.layer.shadowRadius = 3;//陰影半徑,默認(rèn)3

  }
  return _scrollView;
}

二、創(chuàng)建自定義的滾動(dòng)條以及在scrollview上加點(diǎn)內(nèi)容:

-(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=@[@"• 產(chǎn)品戰(zhàn)略規(guī)劃:市場(chǎng)目標(biāo)、用戶目標(biāo)、關(guān)鍵成功要素分析、管理和運(yùn)用自己的資源來(lái)達(dá)成目標(biāo)\n• 產(chǎn)品戰(zhàn)略實(shí)施:有損原則、平衡原則、聚焦原則\n• 產(chǎn)品需求文檔:實(shí)例講解,牛逼的需求文檔是怎么誕生的\n• 主動(dòng):戰(zhàn)略思考、資源爭(zhēng)取\n• 推動(dòng):項(xiàng)目立項(xiàng)、迭代跟蹤\n• 溝通:上傳下達(dá)、思想一統(tǒng)\n• 平衡:各方協(xié)調(diào)、跨部溝通\n• 把控:管理得法、取舍有道",
          @"• 用戶思維:具體案例解析\n• 運(yùn)營(yíng)思維:具體案例解析\n• 數(shù)據(jù)思維:具體案例解析\n• 產(chǎn)品經(jīng)理的用研能力模型\n• 用戶研究基本概念解析\n• 用研基礎(chǔ)搭建及建設(shè)\n• 用研人員分工及工作職責(zé)細(xì)分"
          @"• 常用用戶研究方法詳解\n• 桌面研究、定性研究、定量研究三種方法舉例講解及詳細(xì)步驟解析\n• 卡諾模型\n• 戰(zhàn)略級(jí)的市場(chǎng)及用戶研究\n• 以科學(xué)的方法在產(chǎn)品整個(gè)生命周期中進(jìn)行“研究”",
          @"• 品生命周期用戶研究側(cè)重點(diǎn)以及研究方法解讀\n• 產(chǎn)品用研規(guī)劃建立\n• 在產(chǎn)品不同生命周期,側(cè)重不同用研方法,更準(zhǔn)確進(jìn)行產(chǎn)品迭代",
          @"• 格局:大格局思維,聚焦做實(shí)事\n• 決策:讓瑣碎的運(yùn)營(yíng)變有趣,“舍得”之道\n• owner精神:有狼性\n• 敏銳:“細(xì)節(jié)”出真知\n• 商業(yè)素養(yǎng)",
          @"• 高情商:做個(gè)讓人感覺(jué)“舒適”的資深運(yùn)營(yíng)\n• 凝聚力:1+1>2,善用團(tuán)隊(duì)用人所長(zhǎng),沒(méi)有完美的個(gè)人,只有優(yōu)秀的團(tuán)隊(duì)\n• 影響力:在互聯(lián)網(wǎng)領(lǐng)域成為運(yùn)營(yíng)專家,沉淀經(jīng)驗(yàn),讓成功有跡可循\n• 知識(shí)傳承力:資深運(yùn)營(yíng)的價(jià)值,不是個(gè)人優(yōu)秀,而是讓人人優(yōu)秀。",
          @"• 數(shù)據(jù)運(yùn)營(yíng)體系的構(gòu)成\n• 數(shù)據(jù)規(guī)范與平臺(tái)\n• 數(shù)據(jù)運(yùn)營(yíng)體系結(jié)構(gòu)\n• 數(shù)據(jù)數(shù)據(jù)平臺(tái)構(gòu)建\n• 核心數(shù)據(jù)指標(biāo)\n• 移動(dòng)端產(chǎn)品數(shù)據(jù)埋點(diǎn)范例\n• 數(shù)據(jù)需求指標(biāo)\n• 產(chǎn)品關(guān)鍵數(shù)據(jù)\n• 數(shù)據(jù)運(yùn)營(yíng)體系的構(gòu)成",
            ];

  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的滾動(dòng)范圍
  _scrollView.contentSize = CGSizeMake(190*contentCount+10, 0);



}

三、在UIScrollView的代理滾動(dòng)方法中修改滾動(dòng)條的當(dāng)前位移:

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

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
  [UIView animateWithDuration:0.5 animations:^{

    CGPoint offset = scrollView.contentOffset;

    // scrollView的當(dāng)前位移/scrollView的總位移=滑塊的當(dāng)前位移/滑塊的總位移
    //    offset/(scrollView.contentSize.width-scrollView.frame.size.width)=滑塊的位移/(slideBackView.frame.size.width-sliderView.frame.size.width)
    //    滑塊距離屏幕左邊的距離加上滑塊的當(dāng)前位移,即為滑塊當(dāng)前的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;



  }];
}

這樣,自定義的滾動(dòng)條就實(shí)現(xiàn)了。效果如圖

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

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

如:

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

下載地址:CustomScrollViewSliderView_jb51.rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS Runtime詳解(新手也看得懂)

    iOS Runtime詳解(新手也看得懂)

    這篇文章主要給大家介紹了關(guān)于iOS Runtime的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • iOS的音頻文件的格式轉(zhuǎn)換示例

    iOS的音頻文件的格式轉(zhuǎn)換示例

    這篇文章主要介紹了iOS的音頻文件的格式轉(zhuǎn)換示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • IOS程序開(kāi)發(fā)之跳轉(zhuǎn)短信發(fā)送界面實(shí)現(xiàn)發(fā)送短信功能

    IOS程序開(kāi)發(fā)之跳轉(zhuǎn)短信發(fā)送界面實(shí)現(xiàn)發(fā)送短信功能

    在程序開(kāi)發(fā)中,我們經(jīng)常遇到這樣一功能:某個(gè)程序里面發(fā)送一些短信驗(yàn)證,那么基于代碼是如何實(shí)現(xiàn)的呢?下面小編通過(guò)本文給大家介紹IOS程序開(kāi)發(fā)之跳轉(zhuǎn)短信發(fā)送界面實(shí)現(xiàn)發(fā)送短信功能,有需要的朋友拿去用
    2016-01-01
  • swift 隱式可選型實(shí)例詳解

    swift 隱式可選型實(shí)例詳解

    這篇文章主要介紹了 swift 隱式可選型實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • iOS開(kāi)發(fā)之表視圖詳解

    iOS開(kāi)發(fā)之表視圖詳解

    表視圖是iOS開(kāi)發(fā)中最重要的視圖,它以列表的形式展示數(shù)據(jù)。本篇文章詳細(xì)的介紹了表視圖的幾種用法,有需要的小伙伴可以了解一下。
    2016-11-11
  • iOS App項(xiàng)目中引入SQLite數(shù)據(jù)庫(kù)的教程

    iOS App項(xiàng)目中引入SQLite數(shù)據(jù)庫(kù)的教程

    SQLite是一個(gè)極輕的嵌入式數(shù)據(jù)庫(kù),在應(yīng)用程序中捆綁使用可以更方便地幫助操控關(guān)系型數(shù)據(jù),這里我們就來(lái)看一下iOS App項(xiàng)目中引入SQLite數(shù)據(jù)庫(kù)的教程
    2016-06-06
  • IOS 開(kāi)發(fā)之Swift 元組的實(shí)例詳解

    IOS 開(kāi)發(fā)之Swift 元組的實(shí)例詳解

    這篇文章主要介紹了IOS 開(kāi)發(fā)之Swift 元組的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Xcode使用教程詳細(xì)講解(全)

    Xcode使用教程詳細(xì)講解(全)

    本文介紹的是Xcode使用教程詳細(xì)講解,Xcode是一個(gè)款強(qiáng)大的IDE開(kāi)發(fā)環(huán)境,就像你在寫(xiě)Windows程序時(shí)需要VS2005一樣 需要要Xcode為你寫(xiě)Mac程序提供環(huán)境
    2015-07-07
  • 實(shí)例分析IOS實(shí)現(xiàn)自動(dòng)打包

    實(shí)例分析IOS實(shí)現(xiàn)自動(dòng)打包

    本篇文章給大家分享了IOS實(shí)現(xiàn)自動(dòng)打包的相關(guān)知識(shí)點(diǎn),以及需要的操作內(nèi)容做了分享,有需要的朋友可以學(xué)習(xí)下。
    2018-05-05
  • iOS開(kāi)發(fā)中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片瀏覽器的實(shí)例講解

    iOS開(kāi)發(fā)中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片瀏覽器的實(shí)例講解

    這篇文章主要介紹了iOS開(kāi)發(fā)中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖片瀏覽器的實(shí)例講解,代碼基礎(chǔ)傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-01-01

最新評(píng)論

舟曲县| 长泰县| 昌图县| 平度市| 共和县| 确山县| 西藏| 许昌市| 永登县| 宝兴县| 科技| 祁阳县| 金门县| 高雄市| 郴州市| 张掖市| 马关县| 嘉善县| 吴忠市| 永城市| 洛南县| 卢龙县| 许昌县| 彭山县| 吴旗县| 长丰县| 长泰县| 池州市| 景德镇市| 搜索| 西昌市| 梓潼县| 宜春市| 四会市| 宣恩县| 三门峡市| 峡江县| 泗水县| 诏安县| 长白| 饶阳县|