UIScrollView的contentSize與contentOffset


 UIScrollView為了顯示多於一個屏幕的內容或者超過你能放在內存中的內容。

                 Scroll View為你處理縮小放大手勢,UIScrollView實現了這些手勢,並且替你處理對於它們的探測和回應。其中需要注意的子類是UITableView以及UITextView(用來顯示大量的文字)。還有一個UIWebView,盡管那不是UIScrollView的直接子類,它適用UIScrollView去顯示網頁內容

        contentsize是內容的寬和高,contentsize.width是內容的寬度,contentsize.heght是高度,contentsize是UIScrollView的一個屬性,它是一個CGSize,是由核心圖形所定義的架構,那定義了你可以滾軸內容的寬度和高度,你也可以添加可以上下滾動的額外區域。第一種方法是你可以通過添加內容的大小來完成。另外一個比較動態的選擇是UIScrollView的另一個屬性contentInset,contentInset增加你在contentsize中指定的內容能夠滾動的上下左右區域數量contentInset.top以及contentInset.buttom分別表示上面和下面的距離。

           在滾軸視圖中,有一個叫做ContentOffset的屬性跟蹤UIScrollView的具體位置,你能夠自己獲取和設置它,ContentOffset是你當前可視內容在滾軸視圖邊界的左上角那個點。如圖:

           可以看出,ContentOffset內容中的那個點不是從contentInset的左上角開始的,而是內容的左上角,此時的ContentOffset是正值,但有時也是負值,如下圖所示:

使用一個ScrollView

     創建一個UIScrollView

             CGRectframe = CGRectMake( 0, 0, 200, 200);

              scrollView= [[UIScrollView alloc] initWithFrame: frame];

    添加子視圖(框架可以超過scroll view的邊界)

            frame= CGRectMake( 0, 0, 500, 500);

            myImageView= [[UIImageView alloc] initWithFrame: frame];

           [scrollViewaddSubview:myImageView];

    設置內容尺寸

           scrollView.contentSize= CGSize(500,500);

 

幾個屬性介紹

tracking
當 touch 后還沒有拖動的時候值是YES,否則NO

zoomBouncing
當內容放大到最大或者最小的時候值是 YES,否則 NO

zooming
當正在縮放的時候值是 YES,否則 NO

decelerating
當滾動后,手指放開但是還在繼續滾動中。這個時候是 YES,其它時候是 NO

decelerationRate
設置手指放開后的減速率

maximumZoomScale
一個浮點數,表示能放最大的倍數

minimumZoomScale 
一個浮點數,表示能縮最小的倍數

pagingEnabled
當值是 YES 會自動滾動到 subview 的邊界。默認是NO

scrollEnabled
決定是否可以滾動

delaysContentTouches
是個布爾值,當值是 YES 的時候,用戶觸碰開始,scroll view要延遲一會,看看是否用戶有意圖滾動。假如滾動了,那么捕捉 touch-down 事件,否則就不捕捉。假如值是NO,當用戶觸碰, scroll view 會立即觸發 touchesShouldBegin:withEvent:inContentView:,默認是 YES

canCancelContentTouches
當值是 YES 的時候,用戶觸碰后,然后在一定時間內沒有移動,scrollView 發送 tracking events,然后用戶移動手指足夠長度觸發滾動事件,這個時候,scrollView 發送了 touchesCancelled:withEvent: 到 subview,然后 scroView 開始滾動。假如值是 NO,scrollView 發送 tracking events 后,就算用戶移動手指,scrollView 也不會滾動。

contentSize
里面內容的大小,也就是可以滾動的大小,默認是0,沒有滾動效果。

showsHorizontalScrollIndicator
滾動時是否顯示水平滾動條

showsVerticalScrollIndicator
滾動時是否顯示垂直滾動條

bounces
默認是 yes,就是滾動超過邊界會反彈有反彈回來的效果。假如是 NO,那么滾動到達邊界會立刻停止。

bouncesZoom
和 bounces 類似,區別在於:這個效果反映在縮放上面,假如縮放超過最大縮放,那么會反彈效果;假如是 NO,則到達最大或者最小的時候立即停止。

directionalLockEnabled
默認是 NO,可以在垂直和水平方向同時運動。當值是 YES 時,假如一開始是垂直或者是水平運動,那么接下來會鎖定另外一個方向的滾動。 假如一開始是對角方向滾動,則不會禁止某個方向

indicatorStyle
滾動條的樣式,基本只是設置顏色。總共3個顏色:默認、黑、白

scrollIndicatorInsets
設置滾動條的位置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM