當(dāng)前位置:商國互聯(lián)首頁 供應(yīng)信息 IT設(shè)備、數(shù)碼產(chǎn)品、軟件 其他專用軟件 實驗室專用軟件

iOS-滾動視圖常用屬性方法
UIScrollView 類常用屬性方法。
一、創(chuàng)建
[java] view plaincopy
CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ] ;
UIScrollView* scrollView = [ [UIScrollView alloc ] initWithFrame:bounds ];
當(dāng)你創(chuàng)建完滾動視圖后,你可以將另一個視圖的內(nèi)容粘合到滾動視圖的空白頁上。這回創(chuàng)建一個滾動的內(nèi)容窗口:
[java] view plaincopy
[ scrollView addSubview:myView];
你必須給出內(nèi)容的實際大小,這樣滾動視圖才知道滾動的范圍:
[java] view plaincopy
scrollView.contentSize = myView.frame.size;
要開啟縮放功能需要調(diào)整視圖的兩個屬性,分別是maxinumZoomScale 和 mininumZoomScale 。這樣就可以允許用戶使用捏合手勢調(diào)整內(nèi)容大?。?/span>
[java] view plaincopy
scrollView.maxinumZoomScale = 2.0;//允許放大2倍
scrollView.mininumZoomScale = 0.5;//允許放大到0.5倍
要打開縮放功能,你還需要增加一個UIScrollViewDelegate 代理,通過一個名為 viewForZoomingScrollView
的方法做出響應(yīng)。這個方法會返回進行縮放時所使用的 UIView 對象:
[java] view plaincopy
scrollView.delegate = self;
- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView{
<span style="white-space:pre"> </span>retutn myView;
}
Tips:對于大規(guī)模數(shù)據(jù),你可能會在最初使用一個低于實際大小(1.0)的縮放比例,讓用戶可以平滑地進行放大。
二、屬性
除了上面用到的縮放屬性外,滾動視圖還有會讓你多其他屬性,可以對現(xiàn)實內(nèi)容的行為進行微調(diào)。你可以對 UIScrollView 類進行多方位定制。下面這些屬性是最常用的。
1.indicatorStyle
指定你希望使用的滾動條指示器的類型。默認(rèn)行為是在白邊界上繪制黑色的滾動條,這在大多數(shù)背景下都適用??捎蔑L(fēng)格如下:
[java] view plaincopy
UIScrollViewIndicatorStyleDefault
UIScrollViewIndicatorStyleBlack
UIScrollViewIndicatorStyleWhite
2.contentOffset
一個CGPoint結(jié)構(gòu),其中包含有要顯示內(nèi)容相對于窗口左上角的偏移量。默認(rèn)是從0×0開始的,但是你也可以將顯示內(nèi)容放在其他位置。
3.directionalLockEnabled
默認(rèn)行為是允許用戶同時進行橫向和縱向的滾動。將這個屬性設(shè)置為YES會導(dǎo)致將用戶的滾動行為鎖定成只允許橫向或縱向進行,具體方向由初始姿態(tài)決定。
4.bounces
當(dāng)用戶抵達滾動區(qū)域邊緣時,這個功能允許用戶稍微拖動到邊界外一點。當(dāng)用戶松開手指后,這個區(qū)域會像個橡皮筋一樣,彈回到原位,給用戶一個可見的提示,表示他已經(jīng)到達了文檔開始或結(jié)束位置。如果不想讓用戶的滾動范圍能夠超出可見內(nèi)容,可以將這個屬性設(shè)置為NO。
5.bouncesZoom
類似于bounces 選項,這個方法可以令用戶的縮放操作超出最大或最小縮放級別,然后彈回到范圍以內(nèi)。如果你不想讓用戶能夠超出你指定的范圍進行縮放,將這個屬性設(shè)置為NO。
6.pagingEnabled
當(dāng)開啟了分頁功能時,滾動視圖被分割成多個獨立區(qū)段,二用戶的滾動體驗則變成了頁面翻轉(zhuǎn),你可以用這個屬性來進行頁面翻轉(zhuǎn)。
三、委托方法
可以賦予滾動視圖一個委托,下列委托方法會在特定時刻收到通知。
[java] view plaincopy
-(void)scrollViewDidScroll:(UIScrollView*)scrollView;//會在視圖滾動時收到通知。包括一個指向被滾動視圖的指針,從中可以讀取contentOffset屬性以確定其滾動到的位置。
[java] view plaincopy
-(void)scrollViewWillBeginDragging:(UISCrollView*)scrollView;//當(dāng)用戶首次在某個方向上進行拖動時得到通知。這個方法會得到被作為參數(shù)傳遞的滾動視圖指針,也同樣可以從中讀取 contentOffset 屬性。
[java] view plaincopy
-(void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate;
//當(dāng)用戶抬起拖動到手指時得到通知。還會得到一個布爾值,知名報告滾動視圖最后位置之前,是否需要減速。
[java] view plaincopy
-(void)scrollViewWillBeginDecelerate:(UIScrollView*)scrollView;//當(dāng)用戶抬起手指而視圖需要繼續(xù)移動時,會收到通知。這個方法可以用來讀取 contentOffset屬性,從而判斷出當(dāng)用戶抬起手指錢最后一次滾動到的位置,雖然這個位置并不會使?jié)L動條的最終停止位置。
[java] view plaincopy
-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView;//當(dāng)上面提到的減速完畢、滾動視圖停止時得到通知。收到這個通知的時刻,滾動視圖的contentOffset屬性會反映出滾動條最終停止的位置。
[java] view plaincopy
-(void)scrollViewDidEndZooming:(UIScrollview*)scrollView withView:(UIView*)view atScale:(float)scale;//當(dāng)用戶對內(nèi)容進行縮放時,會收到通知??s放比例表示為一個浮點值,會作為參數(shù)傳遞進來。
[java] view plaincopy
-(BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView;
-(void)scrollViewDidScrollToTop:(UIScrollView*)scrollView;
//當(dāng)用戶點出iPhone狀態(tài)條時,滾動視圖委托可以決定視圖是否滾動回到開頭。
OK,都總結(jié)完了,后面會寫一個頁面翻轉(zhuǎn)的例子敬請關(guān)注。
屬性 作用
CGPoint contentOffSet 監(jiān)控目前滾動的位置
CGSize contentSize 滾動范圍的大小
UIEdgeInsets contentInset 視圖在scrollView中的位置
id<UIScrollerViewDelegate>
delegate 設(shè)置協(xié)議
BOOL directionalLockEnabled 指定控件是否只能在一個方向上滾動
BOOL bounces 控制控件遇到邊框是否反彈
BOOL alwaysBounceVertical 控制垂直方向遇到邊框是否反彈
BOOL alwaysBounceHorizontal 控制水平方向遇到邊框是否反彈
BOOL pagingEnabled 控制控件是否整頁翻動
BOOL scrollEnabled 控制控件是否能滾動
BOOL showsHorizontalScrollIndicator 控制是否顯示水平方向的滾動條
BOOL
showsVerticalScrollIndicator 控制是否顯示垂直方向的滾動條
UIEdgeInsets scrollIndicatorInsets 指定滾動條在scrollerView中的位置
UIScrollViewIndicatorStyle
indicatorStyle 設(shè)定滾動條的樣式
float decelerationRate 改變scrollerView的減速點位置
BOOL tracking 監(jiān)控當(dāng)前目標(biāo)是否正在被跟蹤
BOOL dragging 監(jiān)控當(dāng)前目標(biāo)是否正在被拖拽
BOOL decelerating 監(jiān)控當(dāng)前目標(biāo)是否正在減速
BOOL delaysContentTouches 控制視圖是否延時調(diào)用開始滾動的方法
BOOL canCancelContentTouches 控制控件是否接觸取消touch的事件
float minimumZoomScale 縮小的最小比例
float maximumZoomScale 放大的最大比例
float zoomScale 設(shè)置變化比例
BOOL bouncesZoom 控制縮放的時候是否會反彈
BOOL zooming 判斷控件的大小是否正在改變
BOOL zoomBouncing 判斷是否正在進行縮放反彈
BOOL scrollsToTop 控制控件滾動到頂部
*您的姓名:
*聯(lián)系手機:
固話電話:
E-mail:
所在單位:
需求數(shù)量:
*咨詢內(nèi)容: