亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

接下來看一下代碼的具體實現(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;//陰影透明度,默認0
    _scrollView.layer.shadowRadius = 3;//陰影半徑,默認3

  }
  return _scrollView;
}

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

  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;



  }];
}

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

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

主要用到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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • IOS開發(fā)實現(xiàn)錄音功能

    IOS開發(fā)實現(xiàn)錄音功能

    本文給大家分享的是一個IOS開發(fā)中實現(xiàn)錄音功能的實例,并簡單給大家解析一下,有需要的小伙伴可以參考下
    2016-03-03
  • 詳解iOS社會化分享集成

    詳解iOS社會化分享集成

    這篇文章主要介紹了詳解iOS社會化分享集成的相關知識點以及實現(xiàn)的代碼效果講述,有興趣的朋友參考下。
    2018-02-02
  • iOS判斷網(wǎng)絡請求超時的方法

    iOS判斷網(wǎng)絡請求超時的方法

    本篇文章主要介紹了iOS判斷網(wǎng)絡請求超時的方法,現(xiàn)在分享給大家,也給大家做個參考。感興趣的小伙伴們可以參考一下。
    2016-12-12
  • iOS使用UICollectionView實現(xiàn)拖拽移動單元格

    iOS使用UICollectionView實現(xiàn)拖拽移動單元格

    這篇文章主要為大家詳細介紹了iOS開發(fā)UICollectionView拖拽移動單元格,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • iOS 清除xcode緩存和生成文件的方法

    iOS 清除xcode緩存和生成文件的方法

    下面小編就為大家分享一篇iOS 清除xcode緩存和生成文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • IOS 開發(fā)之實現(xiàn)取消tableView返回時cell選中的問題

    IOS 開發(fā)之實現(xiàn)取消tableView返回時cell選中的問題

    這篇文章主要介紹了IOS 開發(fā)之實現(xiàn)取消tableView返回時cell選中的問題的相關資料,希望通過本文能實現(xiàn)大家想要的功能,需要的朋友可以參考下
    2017-09-09
  • iOS實現(xiàn)3D卡片式輪播效果

    iOS實現(xiàn)3D卡片式輪播效果

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)3D卡片式輪播效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • IOS 禁止縮放頁面的實現(xiàn)方法

    IOS 禁止縮放頁面的實現(xiàn)方法

    這篇文章主要介紹了IOS 禁止縮放頁面的實現(xiàn)方法的相關資料,這里主要介紹了IOS 10如何通過設置來實現(xiàn)禁止縮放及實現(xiàn)方法,需要的朋友可以參考下
    2017-07-07
  • iOS開發(fā)中音頻視頻播放的簡單實現(xiàn)方法

    iOS開發(fā)中音頻視頻播放的簡單實現(xiàn)方法

    視頻音頻是我們在ios日常開發(fā)中經(jīng)常會遇到的一個需求,所以下面這篇文章主要給大家介紹了關于iOS開發(fā)中音頻視頻播放的簡單實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • iOS10 適配遠程推送功能實現(xiàn)代碼

    iOS10 適配遠程推送功能實現(xiàn)代碼

    這篇文章主要介紹了iOS10 適配遠程推送功能實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論