UIScrollView滾動視圖
創(chuàng)新互聯(lián)公司主營吉隆網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),吉隆h5小程序設(shè)計搭建,吉隆網(wǎng)站營銷推廣歡迎吉隆等地區(qū)企業(yè)咨詢
移動設(shè)備的屏幕大小是極其有限的,因此直接展示在用戶眼前的內(nèi)容也相當(dāng)有限
UIScrollView是一個能夠滾動的視圖控件,可以用來展示大量的內(nèi)容,并且可以通過滾動查看所有的內(nèi)容
如:
手機的設(shè)置頁面、照片瀏覽中放大縮小頁面、app上的廣告欄等
基本使用過程:
1)創(chuàng)建UIScrollView對象并設(shè)置其frame
2)將要展示的內(nèi)容添加到UIScrollView中
3)設(shè)置UIScrollView的contentSize屬性以確定可展示的視圖范圍
(能滾多遠,滾到哪里是盡頭)
無法滾動的解決辦法:
沒有設(shè)置contentSize
scrollEnabled = NO
沒有接收到觸摸事件:userInteractionEnabled = NO
沒有取消autolayout功能(要想scrollView滾動,必須取消autolayout)
… …
UIScrollView的幾個重要屬性
frame:我們所看到的frame,以父視圖左上定點作為坐標原點
contentSize:scrollView內(nèi)部的可展示的范圍,是一個CGSize類型
@property(nonatomic) CGSize contentSize - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
contentOffSet:當(dāng)前的滾動位置,是一個CGPoint類型
@property(nonatomic) CGPoint contentOffset
contentInset:內(nèi)邊距
@property(nonatomic) UIEdgeInsets contentInset
其他屬性:
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled //滾動功能使能 @property(nonatomic) BOOL scrollsToTop //點擊狀態(tài)欄回滾到頂部功能的使能 @property(nonatomic) BOOL bounces //彈簧功能使能 @property(nonatomic) BOOL showsHorizontalScrollIndicator //水平滾動條顯示使能 @property(nonatomic) BOOL showsVerticalScrollIndicator //垂直滾動條顯示使能
滾動視圖的代理
UIScrollView對象有一個代理屬性:
@property(nonatomic, assign) id< UIScrollViewDelegate > delegate
代理者需要遵循代理協(xié)議
檢測滾動位置的代理方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
檢測拖拽的代理方法:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
如何實現(xiàn)縮放?
由于scrollView中可以放置多個子視圖
故當(dāng)使用縮放手勢時,scrollView通過代理方法詢問代理者應(yīng)當(dāng)縮放哪個子視圖
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
實現(xiàn)該方法,返回要縮放的子視圖
檢測縮放的代理方法:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView*)view - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView*)view atScale:(CGFloat)scale
滾動視圖的分頁功能
滾動視圖支持分頁效果的滾動功能
相關(guān)屬性:
@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled //分頁效果使能
使用的一般步驟:
1)設(shè)置頁數(shù),contentSize的width為frame的width的頁數(shù)倍
2)向scrollView中放置每一頁應(yīng)顯示的內(nèi)容
3)分頁效果屬性設(shè)置為YES
4)必要時隱藏滾動條
5)必要時使用UIPageControl來顯示當(dāng)前是第幾頁