IOS UI基礎05,iosui05

來源:互聯網
上載者:User

IOS UI基礎05,iosui05

  • UIScrollView
    • UIScrollView使用的步驟
      • 1.建立UIScrollView
      • 2.將需要展示的內容添加到UIScrollView中
      • 3.設定UIScrollView的滾動範圍 (contentSize)
    • 注意: 如果想讓UIScrollView進行滾動, 必須設定可以滾動的範圍
    • scrollView不能滾動的幾種情況
      • 1.沒有設定contentSize
      • 2.scrollEnabled屬性 = NO
      • 3.userInteractionEnabled屬性 = NO
    • enabled和userInteractionEnabled的區別
      • enabled: 代表控制項不可用
      • userInteractionEnabled: 代表控制項不可以和使用者互動, 也就是不能響應使用者的操作
    • 常用屬性
      • 去捲軸
        • 捲軸也是scrollView的子控制項的一部分 //捲軸可能在子控制項的前面, 也可能在子控制項的後面 //正是因為這個原始, 所以以後在開發中不推薦大家通過subviews擷取子控制項的方式來操作子控制項
          self.scrollView.showsHorizontalScrollIndicator = NO;self.scrollView.showsVerticalScrollIndicator = NO;
      • 設定捲軸的樣式
         self.scrollView.indicatorStyle=UIScrollViewIndicatorStyleWhite;
      • 預設下UIScrollView有一個回彈效果 只要設定了contentSize就有回彈效果
        self.scrollView.bounces = YES/NO;
      • 哪怕沒有設定contentSize也可以有回彈效果
        self.scrollView.alwaysBounceVertical = YES;self.scrollView.alwaysBounceHorizontal = YES;
      • 設定邊距contentInset
        self.scrollView.contentInset = UIEdgeInsetsMake(10, 20, 30, 40);
      • 設定內容位移位(contentOffset)
        • 其實就是設定scrollView滾動到什麼地方
        • 告訴scrollView x方向要移動多少, y方向要移動多少
        • 如果x是正數: 圖片往左邊移動
        • 如果x是負數: 圖片往右邊移動
        • 同理y是正數: 圖片往上移動
        • 同理y是負數: 圖片往下移動
        • 計算公式: 永遠都是以 控制項的左上方 – 內容的左上方
      • 代理方法
        • 只要成為了UIScrollView的代理, 遵守代理協議, 實現協議中的方法
        • 當UIScrollView發生一些變化的時候, 系統就會自動調用這些代理方法
        • 只要UIScrollView滾動了, 系統就會自動調用
          • -(void)scrollViewDidScroll:(UIScrollView *)scrollView
        • 只要使用者準備開始拖拽了就會調用
          - -(void)scrollViewWillBeginDragging:(nonnull UIScrollView *)scrollView
        • 使用者已經結束拖拽, 代表使用者已經鬆手了 系統調用了該方法並不代表著,UIScrollView已經停止滾動了
          - -(void)scrollViewDidEndDragging:(nonnull UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
        • 只有執行了這個方法才代表UIScrollView已經停止滾動了
          - -(void)scrollViewDidEndDecelerating:(nonnull UIScrollView *)scrollView
          +注意:如果想在UIScrollView停止滾動之後做一些操作, 有兩種情況
          • 1.沒有慣性的情況: 只會調用 停止拖拽的方法, 不會調用停止減速的方法
          • 2.有慣性的情況: 既會調用 停止拖拽的方法, 也會調用停止減速的方法
          • 所以: 以後要判斷UIScrollView是否停止滾動, 需要同時重寫兩個方法
             + scrollViewDidEndDragging + scrollViewDidEndDecelerating
  • 縮放
    • 1.成為代理, 通過代理方法告訴UIScrollView要縮放哪一個子控制項
      • 在此方法中告訴UISrollView要縮放哪一個控制項
        - -(nullable UIView *)viewForZoomingInScrollView:(nonnull UIScrollView *)scrollView
    • 2.要想縮放, 除了告訴UISrollView要縮放哪一個控制項以外, 還要告訴UISrollView最小能縮多小, 最大能放多大
      self.sc.maximumZoomScale = 2.0; 最大2.0self.sc.minimumZoomScale = 0.5;  最小0.5
      • 3.縮放的過程中調用和scrollViewDidScroll一樣, 只要縮放一點點就會調用
        -(void)scrollViewDidZoom:(nonnull UIScrollView *)scrollView
  • UIPageControl

       @property(nonatomic) NSInteger numberOfPages; 設定最大頁數   // default is 0   @property(nonatomic) NSInteger currentPage;   設定頁碼   // 通過KVC給UIPageControl的私人屬性賦值, 設定自訂圖片  [self.pageControl setValue:[UIImage imageNamed:@"current"] forKeyPath:@"_currentPageImage"];  [self.pageControl setValue:[UIImage imageNamed:@"other"] forKeyPath:@"_pageImage"];
  • NSTimer

    // 注意:NSTimer應該是weak// 為什麼NSTimer應該是weak, 因為只要建立一個NSTimer對象, 該對象就會被主線程強引用    @property (weak, nonatomic) NSTimer *timer; // scheduledTimerWithTimeInterval: 建立一個定時器, 並且立即可是計時  // TimeInterval: 間隔時間  // target: 調用誰的方法  // selector: 調用什麼方法  // userInfo: 需要傳遞什麼參數  // repeats: 是否重複  // 每隔2.0秒調用一次self的nextPage方法, 並且不傳遞任何參數  [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];  // 主線程在處理其它事件的時候, 分一點時間來處理NSTimer  [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];} // 只要調用invalidate方法, 系統就會將NSTimer從主線程移除, 並且銷毀NSTimer對象  [self.timer invalidate];

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.