UIScrollView分頁的實現

2021-08-31 12:23:21 字數 990 閱讀 1182

uiscrollview的經典例子就是safari的編輯模式了

uiscrollview可以垂直,水平滾動。

如果屬性pageenabled = yes,則設定其為分頁模式,那麼沒滾動一次就是一頁,垂直方向上的一頁就是uiscrollview的高度,水平方向就是其寬度。

我們可以設定contentsize,這就是uiscrollview可以滾動的最大區域了。

uiscrollview沒有datasource的概念,因為這就是乙個view,具體view中的內容擺放完全隨意,只是每次都會滾動固定的頁面大小。

比如我們有5個頁面,我們需要自己計算每個頁面的位置,將其水平放在uiscrollview上。

contentsize則設定為5*每個頁面的寬度,每個頁面的高度。

如果contentsize的高度或這寬度正好與uiscrollview的高度或寬度相等,則在該方向上不能滾動。

具體例子可以檢視官方文件的例子,pagecontrol。

注意:uiscrollview不會帶有分頁的指示符號,需要利用uipagecontrol控制。

但是要想做到safari的效果,我們需要乙個小技巧,因為在safari中,當前頁時可以看到前後兩頁的部分內容。

注意:分頁的寬度不能修改,所以我們只能縮小uiscrollview的寬度,讓其不要佔滿整個螢幕,同時設定clipstobouds屬性為no,這樣超出範圍的檢視也會顯示,這樣就能看到前後兩頁的內容,當然需要設定前後兩頁的alpha值為0.5,做出乙個透明效果。

在uiscrollview的滾動事件中,判斷位置,當乙個頁面出現的區域超過1半時,設定alpha為1,小於1半時設定alpha為0.5

現在還有乙個問題:uiscrollview的滑動事件響應區域變小了,因為uiscrollview本身變小了,其餘我們看到的頁面在區域之外,因此我們需要重寫uiscrollview所在的parentview的hittest事件,在其他區域的事件返回值為uiscrollview物件,這樣使用者感覺整個螢幕都是uiscrollview在響應了。

UIScrollView分頁的實現

uiscrollview的經典例子就是safari的編輯模式了 uiscrollview可以垂直,水平滾動。如果屬性pageenabled yes,則設定其為分頁模式,那麼沒滾動一次就是一頁,垂直方向上的一頁就是uiscrollview的高度,水平方向就是其寬度。我們可以設定contentsize,...

UIScrollView分頁的實現的補充說明

uiscrollview的經典例子就是safari的編輯模式了 uiscrollview可以垂直,水平滾動。如果屬性pageenabled yes,則設定其為分頁模式,那麼沒滾動一次就是一頁,垂直方向上的一頁就是uiscrollview的高度,水平方向就是其寬度。我們可以設定contentsize,...

UIScrollView與分頁的聯合使用

1 滑動檢視的建立,和分頁連用 1 建立滑動檢視 2 在滑動檢視裡面新增 3 建立分頁檢視 4 給滑動檢視設定 5 實現 方法,使翻頁的時候,分頁也在自己的相應的點上 協議方法的實現 當滾動時觸發的方法 2 與分頁連用,並且可以無限滾動 1 在第一張頁面前面加一張與最後一張一樣的 2 實現兩個協議,...