您好,登錄后才能下訂單哦!
UIScrollView滾動視圖
移動設備的屏幕大小是極其有限的,因此直接展示在用戶眼前的內容也相當有限
UIScrollView是一個能夠滾動的視圖控件,可以用來展示大量的內容,并且可以通過滾動查看所有的內容
如:
手機的設置頁面、照片瀏覽中放大縮小頁面、app上的廣告欄等
基本使用過程:
1)創建UIScrollView對象并設置其frame
2)將要展示的內容添加到UIScrollView中
3)設置UIScrollView的contentSize屬性以確定可展示的視圖范圍
(能滾多遠,滾到哪里是盡頭)
無法滾動的解決辦法:
沒有設置contentSize
scrollEnabled = NO
沒有接收到觸摸事件:userInteractionEnabled = NO
沒有取消autolayout功能(要想scrollView滾動,必須取消autolayout)
… …
UIScrollView的幾個重要屬性
frame:我們所看到的frame,以父視圖左上定點作為坐標原點
contentSize:scrollView內部的可展示的范圍,是一個CGSize類型
@property(nonatomic) CGSize contentSize - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
contentOffSet:當前的滾動位置,是一個CGPoint類型
@property(nonatomic) CGPoint contentOffset
contentInset:內邊距
@property(nonatomic) UIEdgeInsets contentInset
其他屬性:
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled //滾動功能使能 @property(nonatomic) BOOL scrollsToTop //點擊狀態欄回滾到頂部功能的使能 @property(nonatomic) BOOL bounces //彈簧功能使能 @property(nonatomic) BOOL showsHorizontalScrollIndicator //水平滾動條顯示使能 @property(nonatomic) BOOL showsVerticalScrollIndicator //垂直滾動條顯示使能
滾動視圖的代理
UIScrollView對象有一個代理屬性:
@property(nonatomic, assign) id< UIScrollViewDelegate > delegate
代理者需要遵循代理協議<UIScrollViewDelegate>
檢測滾動位置的代理方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
檢測拖拽的代理方法:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
如何實現縮放?
由于scrollView中可以放置多個子視圖
故當使用縮放手勢時,scrollView通過代理方法詢問代理者應當縮放哪個子視圖
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
實現該方法,返回要縮放的子視圖
檢測縮放的代理方法:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView*)view - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView*)view atScale:(CGFloat)scale
滾動視圖的分頁功能
滾動視圖支持分頁效果的滾動功能
相關屬性:
@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled //分頁效果使能
使用的一般步驟:
1)設置頁數,contentSize的width為frame的width的頁數倍
2)向scrollView中放置每一頁應顯示的內容
3)分頁效果屬性設置為YES
4)必要時隱藏滾動條
5)必要時使用UIPageControl來顯示當前是第幾頁
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。