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