UIScrollView的用法,屬性

2022-05-15 10:48:43 字數 2348 閱讀 3503

uiscrollview是用來在螢幕上顯示那些在有限區域內放不下的內容。例如,在手機螢幕上顯示內容豐富的網頁或者很大的。在這種情況下,需要使用者對螢幕內容進行拖動或縮放來檢視螢幕或視窗區域外的內容。

所以,scrollview應該首先有乙個視窗,用來顯示內容,其次,還要有內容本身。這裡的這個顯示視窗就是uiscrollview,這個視窗 可以是整個手機螢幕,也可以只是手機螢幕的一部分區域(螢幕其他部分可以顯示些別的東西)。內容則是你需要檢視的或者網頁等資訊檢視。通常,其大小會 超過這個螢幕,正因為如此,我們才要使用uiscrollview來檢視。

先來看如何使用uiscrollview在小視窗中顯示一副大圖。

假定viewconroller已經設定了屬性@property uiscrollview * scrollview;

- (void)viewdidload

執行一下看看,發現視窗正常顯示了的左上角。但是根本拖不動,看不了的其他部分。這是怎麼回事呢?因為我們沒有為scrollview設定要顯示的內容大小。而scrollview的contensize大小預設是0。

contentsize描述了有多大範圍的內容需要使用scrollview的視窗來顯示,其預設值為cgsizezero,也就是乙個寬和高都是0的範圍。

當contentsize小於當前scrollview的大小時,意味著使用者要顯示的內容在視窗範圍內是可以全部顯示的,這個時候,通常內 容檢視是拖不動的(有內容沒有顯示出來才要拖嘛,都顯示得出來)。之所以說是「通常」,是因為通過某些設定,還是可以拖得動的,後邊回彈機制裡會解釋。所 以要讓檢視可以拖動,我們得設定乙個contentsize。在前面這個簡單的這個例子裡,我們當然就設定成imageview的大小就好了啊。所以在第 2步之後新增一句:

self.scrollview.contentsize = view.bounds.size;

這樣,就可以顯示的全部內容。

但是如果你只想在視窗顯示的的一部分,也是可以的,就把contentsize設定得小一點就好了。除了contentsize,還有contentoffsetcontentinset也可以結合起來使用。需要注意的是,contentsize的範圍是以scrollview的位置為基準的。所以,如果內容檢視的frame.origin不是(0,0),則需要仔細計算內容檢視能被顯示的範圍。

好了,現在可以拖動了。為了更清楚的進行描述,我們換一張。大小為550*350的網格。

我們發現,當將拖到邊緣的時候,還是可以繼續被拖動的,會顯示contensize之外的內容。

也就是說scrollview視窗在手指釋放的時候後的靜止狀態下,只會顯示contentsize範圍內的內容。

scrollview的這種回彈機制,是可以設定的,相關的屬性為:bouncesalwaysbouncehorizontalalwaysbounceverticaldecelerationrate

根據我們的實際需要,我們可以對狀態條進行各種設定。

draggingdecelerate,這三個屬性表明了當前檢視的滾動狀態。

上一節我們看到了zooming屬性,scrollview除了支援拖動之外,還支援縮放。

除了這些基本的scrollview,我們常常使用的新聞客戶端或者待辦事項軟體,都會有列表檢視,也就是uitableview,也是一種

scrollview,它繼承了uiscrollview的特性,又有自己的獨特性。除了列表檢視,還有瀑布流檢視uicollectionview,也

類似,未來再詳細剖析。

UIScrollView 的基本用法

這段 放在 uiviewcontroller 的 viewdidload 方法中執行的,請注意每個 frame 和 scrollview 的關鍵屬性,如 contentsize。scrollview 中按頁滾動時每次走動乙個 scrollview 的寬度 橫向時 或高度 縱向時 看下面兩張圖 第一張...

UIScrollView 的基本用法

這段 放在 uiviewcontroller 的 viewdidload 方法中執行的,請注意每個 frame 和 scrollview 的關鍵屬性,如 contentsize。scrollview 中按頁滾動時每次走動乙個 scrollview 的寬度 橫向時 或高度 縱向時 看下面兩張圖 第一張...

UIScrollView 的基本用法

這段 放在 uiviewcontroller的viewdidload方法中執行的,請注意每個frame和scrollview的關鍵屬性,如contentsize。scrollview中按頁滾動時每次走動乙個scrollview的寬度 橫向時 或高度 縱向時 看下面兩張圖 第一張圖是用屬性 conte...