最近整理IOS開發關於scrollView的一些細節和技巧

初學者用storyBoard時選中Auto Layout 會自動添加很多約束導致滾動視圖不可滾動,最好在開始設置控件之前將滾動視圖和圖像視圖的A L屬性禁止掉。

滾動視圖實現
self.scrollView.contentSize = self.imageView.image.size;

讓圖片縮放
採用UIScrollViewDelegate協議並實現代理方法返回須要縮放的內容視圖
-(UIView *)viewForZoomingInScrollView: (UIScrollView *)scrollView
{
     return self.imageView;
}

canCencelContentTouches 屬性 

如果屬性值爲YES並且跟蹤到手指正觸摸到一個內容控件,這時如果用戶拖動手指的距離足夠產生滾動,那麼內容控件將收到一個touchesCancelled:withEvent:消息,而scroll view將這次觸摸作爲滾動來處理。如果值爲NO,一旦content view開始跟蹤(tracking==YES),則無論手指是否移動,scrollView都不會滾動。

簡單通俗點說,如果爲YES,就會等待用戶下一步動作,如果用戶移動手指到一定距離,就會把這個操作作爲滾動來處理並開始滾動,同時發送一個touchesCancelled:withEvent:消息給內容控件,由控件自行處理。如果爲NO,就不會等待用戶下一步動作,並始終不會觸發scrollView的滾動了。


ScrollView的倆個屬性 DelaysContentTouches 和 CanCancelCotentTouch  影響 scrollView中添加按鈕等控件的事件響應問題 (先觸發按鈕還是先觸發滾動的問題)
假設視圖中存在按鈕 我在代碼中測試實現了下面4種不同組合的效果 1代表設置了DelaysContentTouches屬性 2代表設置了 CanCancelContentTouches 屬性

    [scrollView setDelaysContentTouches:NO];     1
    [scrollView setCanCancelContentTouches:NO];  2
 設置情況               點擊按鈕效果               在按鈕上拖動         和  在視圖中拖動

1、2都不設置        點擊按鈕延遲高亮       拖動按鈕無反應          視圖滾動
1設置2 不設置       按鈕正常點擊               拖動時候觸發按鈕      不滾動
1不設置 2設置       點擊延遲高亮                快速拖動視圖滾動      慢速按鈕觸發
1、2都設置            按鈕正常 點擊               拖動時候觸發按鈕       不滾動
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章