UIScrollView

//UIScrollView 滾動(dòng)視圖

? ?//滾動(dòng)原因:控件大小限制了可顯示的范圍,如果想要顯示更多的內(nèi)容,需要滾動(dòng)

? ?//滾動(dòng)的條件:內(nèi)容大小 > frame.size

//內(nèi)容大小

? ? self.sv.contentSize = CGSizeMake(VIEW_WIDTH*6, VIEW_HEIGHT);

//偏移量

? ?//只要視圖滾動(dòng) 偏移量就會變化

? ?//只要改變偏移量 視圖就會滾動(dòng)

? ?sv.contentOffset = CGPointMake(100, 100);

//內(nèi)邊距

? ?sv.contentInset = UIEdgeInsetsMake(100, 200, 300, 400);

? ?/* ?整頁翻動(dòng) ?*/

? ?//以當(dāng)前滾動(dòng)視圖的寬度為1頁

? ?self.sv.pagingEnabled = YES;

? ?/* ?邊緣彈動(dòng)效果 ?*/

? ?self.sv.bounces = YES;

? ?/* ?滾到頂部 */

? ?//每個(gè)滾動(dòng)視圖默認(rèn)都為YES 一個(gè)頁面中存在多個(gè)滾動(dòng)視圖時(shí) 僅開啟需要滾動(dòng)的視圖 其他滾動(dòng)視圖置為NO

? ?self.sv.scrollsToTop = NO;

? ?/* 是否允許滾動(dòng) */

? ?self.sv.scrollEnabled = YES;

? ?/* 滾動(dòng)條顯示/隱藏 ?*/

? ?//水平Horizontal

? ?self.sv.showsHorizontalScrollIndicator = NO;

? ?//垂直Vertical

? ?self.sv.showsVerticalScrollIndicator = NO;

//UIPageControl

? ?//視圖的滾動(dòng)分為兩個(gè)階段:

? ?//1.拖拽(手指在屏幕上)

? ?//2.減速(手指離開屏幕)

? ?self.sv.delegate = self;

? ?//滾動(dòng)視圖功能為:滾動(dòng)/縮放

? ?//最小比例

? ?self.sv.minimumZoomScale = 0.5;

? ?//最大比例

? ?self.sv.maximumZoomScale = 2;

#parma --- scrollView的代理方法

? ? ? ?// scrollView正在滾動(dòng)的時(shí)候調(diào)用?偏移量一直變化

??????? - (void)scrollViewDidScroll:(UIScrollView *)scrollView;

? ? ? ?// scrollView正在縮放

??????? - (void)scrollViewDidZoom:(UIScrollView *)scrollView

? ? ? ? //開始拖拽的時(shí)候調(diào)用

??????? - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;

? ? ? ? //即將停止拖拽的時(shí)候調(diào)用

??????? - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inoutCGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0);

? ? ? ?// 已經(jīng)停止拖拽調(diào)用

??????? - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

? ? ? ? //scrollView即將開始減速

??????? - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;

? ? ? ?// scrollView停止減速?停止

??????? - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

? ? ? ? //scrollView停止?jié)L的的動(dòng)畫

??????? - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

? ? ? ? //在scrollView中?哪些控件是需要縮放的

??????? - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

? ? ? ? //scrollView即將開始縮放

??????? - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2);

? ? ? ? //scrollView結(jié)束縮放

??????? - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale;

? ? ? ? //scrollView即將滾動(dòng)到頂部

??????? - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;

? ? ? ? //scrollView已經(jīng)滾動(dòng)到頂部

??????? - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

通過UIScrollView實(shí)現(xiàn)縮放效果

//準(zhǔn)備開始縮放的時(shí)候調(diào)用?

- (void)scrollViewWillBeginZooming:(UIScrollView*)scrollView withView:(UIView*)view

//正在縮放的時(shí)候調(diào)用

- (void)scrollViewDidZoom:(UIScrollView*)scrollView

核心代碼:設(shè)置內(nèi)容大小

????contentSize.height == 0設(shè)置為0僅僅代表豎直方向上不能滾動(dòng)

???self.scrollView.contentSize=CGSizeMake(count * w, 0);

? ?分頁

????每一頁的尺寸都是跟scrollView的frame.size一樣的

???self.scrollView.pagingEnabled=YES;?

- (void)scrollViewDidScroll:(UIScrollView*)scrollView{

????--四舍五入為整數(shù)的方法--? (int)(小數(shù)+ 0.5)

????0.3? -> (int)(0.3 + 0.5) == 0

????0.4 -> (int)(0.4 + 0.5) == 0

????1.5 -> (int)(1.5 + 0.5) == 2

????0.7 -> (int)(0.7 + 0.5) == 1

????小數(shù)加上0.5再轉(zhuǎn)換成整數(shù),這樣頁碼顯示的就是正確的頁數(shù)(仔細(xì)想)

???intpage = (int)(scrollView.contentOffset.x/ scrollView.frame.size.width+ 0.5);

???self.pageControl.currentPage= page;

}

- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{

???intpage = scrollView.contentOffset.x/ scrollView.frame.size.width;

???self.pageControl.currentPage= page;

}

分頁

只要將UIScollView的pageEnabled屬性設(shè)置為YES,UIScrollView會被分割成多個(gè)獨(dú)立頁面,里面的內(nèi)容就能進(jìn)行分頁展示,一般會配合UIPageControl增強(qiáng)分頁效果

//一共有多少頁

@property(nonatomic)NSIntegernumberOfPages;

當(dāng)前顯示第幾頁

@property(nonatomic)NSIntegercurrentPage;?

//只有一頁時(shí),是否需要隱藏頁碼指示器

@property(nonatomic)BOOLhidesForSinglePage;?

//其他頁碼指示器的顏色

@property(nonatomic,retain)UIColor*pageIndicatorTintColor;

//當(dāng)前頁碼指示器的顏色

@property(nonatomic,retain)UIColor*currentPageIndicatorTintColor;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容