UIScrollView - 新特性

效果圖

新特性-UIScrollView.gif

需求:
實現(xiàn)手動圖片輪播的功能
點擊,進入/跳過,直接進入主界面!

思路:

  1. 顯示圖片(純代碼顯示圖片)
    創(chuàng)建imageView -> 創(chuàng)建image -> 設置imageView的frame -> 添加到self.view上面.
  2. 實現(xiàn)輪播效.
    1. 設置contentSize屬性
      self.scrollView.contentSize = CGSizeMake(self.imgW * self.pageSum, 0);
    2. 設置多張圖片的frame和顯示圖片
    for (int i = 0; i< self.pageSum; i++) {
      self.image = [UIImage imageNamed:[NSString stringWithFormat:@"guide%d",i+1]];
      self.imageView = [[UIImageView alloc]initWithImage:self.image];
      self.imageView.frame = CGRectMake(i*self.imgW, 0, self.imgW, self.imgH);
      [self.scrollView addSubview: self.imageView];
    }
    
    1. 設置分頁效果
      直接啟用UIScrollView的分頁,那么UIScrollView就會根UIScrollView自身的寬度,來實現(xiàn)分頁得!
      UIScrollView的寬度 == 分頁的寬度
      self.scrollView.pagingEnabled = YES; // 啟動分頁
    2. 實現(xiàn)分頁控件(UIPageControl)
    1. 創(chuàng)建分頁控制器  
      UIPageControl * pageControl = [[UIPageControl alloc]init];
    2.分頁控制器總共多少頁
      pageControl.numberOfPages = self.pageSum;
    3.分頁控制器的frame
      pageControl.frame = CGRectMake(0, self.imgH*0.72, self.imgW, 28);
    4.未選中分頁的顏色和選中分頁的顏色
     pageControl.pageIndicatorTintColor = [UIColor blackColor];
     pageControl.currentPageIndicatorTintColor = [UIColor redColor];
    5.先創(chuàng)建UIScrollView,再創(chuàng)建UIPagControl(否則會被UIScrollView遮住)
      [self.view addSubview:self.scrollView];
      [self.view addSubview:pageControl];
    
    1. 讓UIPageControl跟隨UIScrollView動起來!(代理方法)
      1. scrollViewDidScroll(scrollView代理方法 - 滾動時調(diào)用)
      2. 獲取偏移量,計算出當前的頁數(shù)(偏移量/每頁的寬度).加0.5是因為,如果在兩頁之間,則pageControl控件會動!
      3. currentPage(現(xiàn)在頁數(shù))
      - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
      double page = scrollView.contentOffset.x/scrollView.frame.size.width;
      self.pageControl.currentPage = (int)(page+0.5);
      }
      
  3. 實現(xiàn)“跳過”“,“進入”的功能
    1.判斷當前是第0-2頁/最后一頁
    2.創(chuàng)建按鈕, 設置按鈕的frame, 給按鈕添加點擊事件
    1. [[UIButton alloc]init]
    2. skipBtn.frame = CGRectMake(self.imgW*0.5-75, skipBtnY, 150, 35);
    3. [skipBtn addTarget:self  action:@selector(didSkipBtnClick) forControlEvents:UIControlEventTouchUpInside];
    
    3.將按鈕添加到self.imageView上面
    [imageView addSubview:skipBtn];
  4. 優(yōu)化
    1. 狀態(tài)欄(無線,電池...)內(nèi)容隱藏, info.plist里面配置2個鍵值對!
      Status bar is initially hidden-YES (狀態(tài)欄最初隱藏 - YES)View controller-based status bar appearance-NO (視圖控制器狀態(tài)欄外觀 - NO )
    2. 彈簧效果,UIScrollView自帶動畫效果
      self.scrollView.bounces = YES; //彈簧效果
      self.scrollView setContentOffSet: animated; //自帶動畫效果(滾動的時候,不會太生硬,古板!)

UIScrollView - 新特性代碼

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容