**:
scrollview
uiscrollview
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);
擴充套件scroll view
的行為
應用程式通常需要知道有關的滾圖的事件
scrolloffset
改變的時候
拖動開始和結束
減速的開始和結束
通過子類化擴充套件
scroll view
的行為
建立乙個子類
重寫一些功能並改變行為
關於這種方式的爭議
應用程式的邏輯和行為變成了檢視本身的一部分,就像,你可能有一些定製的滾軸邏輯,,在那你只在意乙個檢視控制,但你想在不同地方重複使用你的滾軸檢視,如果你必須為每個都子類化,你最後會有很多不同的滾軸檢視子類以及在檢視中的特定應用邏輯。
編寫很多子類是很沉悶的事情,你最後會有很多無法重複使用的單獨檢視,而
mvc的檢視部分的乙個重點是檢視是可以在不同的控制器和不同的模式之中重複使用的,如果我們把所有邏輯都放在檢視中,它減少了可復用性。
你的**變得很牢固地配對在一起,它實際上變成了超類的一部分,你無法從
uiscrollview
中析取它,之後用其它東西代替,如果它在你控制器中且為控制器的一部分,在之後更容易改變它工作的方式和重新安排你應用程式的一些部分。
通過委派來擴充套件
scroll view
的行為(常用的)
委派是乙個單獨的物件,協議,定義了委派會實現的一系列功能的
objective-c
協議,它建立了一系列很清晰的撤銷點,在那裡你能定製行為和外觀。它在這些物件之間保持了鬆散的配對,檢視本身與檢視控制器或任何其它的控制器物件,委派不是滾軸檢視的直接子類,它比起牢固配對的子類更加的鬆散。
UIScrollView使用注意
這裡討論同時使用autolayout 和 uiscrollview 的情況 1.如果內容元件的尺寸能夠確定 則直接在storyboard 中設定乙個uiview包裹住所有內容元件,並在storyboard中設定固定的高度。這樣,uiscrollview設不設定contentsize都可以正常顯示。2...
UIScrollView與分頁的聯合使用
1 滑動檢視的建立,和分頁連用 1 建立滑動檢視 2 在滑動檢視裡面新增 3 建立分頁檢視 4 給滑動檢視設定 5 實現 方法,使翻頁的時候,分頁也在自己的相應的點上 協議方法的實現 當滾動時觸發的方法 2 與分頁連用,並且可以無限滾動 1 在第一張頁面前面加一張與最後一張一樣的 2 實現兩個協議,...
UIScrollView 的基本用法
這段 放在 uiviewcontroller 的 viewdidload 方法中執行的,請注意每個 frame 和 scrollview 的關鍵屬性,如 contentsize。scrollview 中按頁滾動時每次走動乙個 scrollview 的寬度 橫向時 或高度 縱向時 看下面兩張圖 第一張...