- (void)viewDidLoad {
[superviewDidLoad];
//創(chuàng)建UIScrollView
UIScrollView* _scrollView = [[UIScrollViewalloc] initWithFrame:CGRectMake(0, 0,self.view.bounds.size.width,self.view.bounds.size.height)];
//將要產(chǎn)生滾動的內(nèi)容粘貼到滾動視圖上
[_scrollView addSubview:_imageView];
//必須要設(shè)置內(nèi)容滾動區(qū)域范圍(要比scrollView 范圍大)
//內(nèi)容圖片有多大那么滾動區(qū)域就設(shè)置多大
_scrollView.contentSize = CGSizeMake(15*_scrollView.bounds.size.width, _scrollView.bounds.size.height);
//設(shè)置背景
_scrollView.backgroundColor = [UIColorredColor];
//設(shè)置是否可以回彈(上下左右)(默認(rèn)yes)
_scrollView.bounces =NO;
//下面兩個設(shè)置的是 水平和豎直方向 是否總是有回彈效果(_scrollView.bounces 必須是YES) 如果沒有設(shè)置contentSize也能看到回彈效果
_scrollView.alwaysBounceHorizontal =YES;
_scrollView.alwaysBounceVertical =YES;
//設(shè)置(水平萍倡、垂直)滾動條的顯示(默認(rèn)YES)
//隱藏水平滾動條
_scrollView.showsHorizontalScrollIndicator =NO;
//隱藏垂直滾動條
_scrollView.showsVerticalScrollIndicator =NO;
//設(shè)置滾動條的風(fēng)格
_scrollView.indicatorStyle =UIScrollViewIndicatorStyleBlack;
//設(shè)置垂直和水平方向的滾動只能有一個生效(默認(rèn)兩個都可以)
_scrollView.directionalLockEnabled =YES;//是否鎖定
//設(shè)置是否可以滾動(默認(rèn)是YES??? NO不能滾動了)
_scrollView.scrollEnabled =YES;
//設(shè)置點擊狀態(tài)欄 是否可以把內(nèi)容滾動到頂部 (默認(rèn)是YES)
_scrollView.scrollsToTop =YES;
//設(shè)置內(nèi)容偏移量
//實際上就是 滾動視圖左上角坐標(biāo) 相對于(0,0)內(nèi)容視圖的坐標(biāo)系的坐標(biāo)
//默認(rèn)是 (0,0)
_scrollView.contentOffset = CGPointMake(100, 100);
//設(shè)置放大和縮小(點擊 option 用兩只手指)
//要想實現(xiàn)放大縮小效果必須要遵守協(xié)議設(shè)置代理
_scrollView.minimumZoomScale = 0.3;
_scrollView.maximumZoomScale = 2.0;
//設(shè)置放大(單擊就可)
[_scrollView setZoomScale:1 animated:YES];
//打開翻頁效果
_scrollView.pagingEnabled =YES;
//獲取當(dāng)前的內(nèi)容偏移量
CGPoint point =? _scrollView.contentOffset;
//設(shè)置內(nèi)容偏移量
//通過代碼改變移動 不會觸發(fā)函數(shù)scrollViewDidEndDecelerating
[_scrollView scrollRectToVisible:CGRectMake(page.currentPage*_scrollView.bounds.size.width, 0, _scrollView.bounds.size.width, _scrollView.bounds.size.height) animated:YES];
//設(shè)置代理
_scrollView.delegate =self;
}
/*
以后我們經(jīng)常需要在滾動視圖滾動的時候做一些處理疑务,(下拉刷新)但是,當(dāng)前界面是接收不到這個滾動的事件的落恼,只有滾動視圖自己知道所森,所以當(dāng)前界面要想獲取這個滾動事件加矛,必須要遵守協(xié)議 設(shè)置代理塞耕。
一旦發(fā)生滾動 那么滾動視圖 就會把這個事件通知給代理。代理就可以做相應(yīng)的處理
*/
#pragma mack - 實現(xiàn)協(xié)議UIScrollViewDelegate
//設(shè)置指定的圖片變形
- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView{
returnscrollView.subviews[0];//通過視圖的子視圖數(shù)組得到_imageView
}
//一旦滾動就一直調(diào)用 直到停止
- (void)scrollViewDidScroll:(UIScrollView*)scrollView{
}
//將要開始拖拽的時候調(diào)用(開始滾動的時候)(手指開始拖拽屏幕的時候)
- (void)scrollViewWillBeginDragging:(UIScrollView*)scrollView{
}
//將要停止拖拽的時候調(diào)用
- (void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
}
//已經(jīng)停止拖拽調(diào)用 (手指離開滾動視圖的時候)
- (void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate{
}
//將要開始減速的時候 (手指離開屏幕開始調(diào)用)//必須要有減速過程
- (void)scrollViewWillBeginDecelerating:(UIScrollView*)scrollView{
}
//減速到停止的時候(靜止)的時候調(diào)用
- (void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView{
}
//變形結(jié)束調(diào)用
- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(CGFloat)scale{
}
//變形開始的時候調(diào)用
- (void)scrollViewWillBeginZooming:(UIScrollView*)scrollView withView:(UIView*)view{
}
//變形過程中調(diào)用
- (void)scrollViewDidZoom:(UIScrollView*)scrollView{
}
//當(dāng)點擊狀態(tài)欄 回到頂部的時候調(diào)用//首先要設(shè)置 _scrollView.scrollsToTop = YES;
- (void)scrollViewDidScrollToTop:(UIScrollView*)scrollView{
}
//_scrollView.scrollsToTop = YES;之后 在將要開始滾動到頂部的時候調(diào)用下面的函數(shù) 如果下面是YES 允許滾動到頂部 NO 是不可以的//_scrollView.scrollsToTop = NO 下面的方法失效
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView{
returnYES;
}