- .userInteractionEnabled 是否允許通過點擊屏幕讓滾動視圖響應事件
YES接收觸碰事件
NO不接受 - .contentOffset 滾動視圖畫布的移動位置椿争,決定畫布顯示的最終圖像效果
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated;
讓滾動視圖移動到指定的位置怕膛,動畫移動,一般在touchesBegan方法中設置 -
scrollViewWillBeginDragging:(UIScrollView *)scrollView
滾動視圖即將開始被拖動時調用 - (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate秦踪;
當滾動視圖結束拖動時調用此函數(shù) - (void) scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
滾動視圖即將結束拖動時調用 - (void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
視圖即將開始減速時調用 - (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView
視圖已經結束減速時期褐捻,視圖停止的瞬間調用
具體使用:
//聲明文件中聲明成員變量
@interface ViewController : UIViewController <UIScrollViewDelegate> {
UIScrollView* _scrollView;
}
@end
//實現(xiàn)文件中
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//創(chuàng)建滾動視圖
_scrollView =[[UIScrollView alloc]init];
//設定滾動視圖的位置
_scrollView.frame=CGRectMake(10, 50, 300, 400);
//取消彈動效果
_scrollView.bounces=NO;
//是否允許通過點擊屏幕讓滾動視圖響應事件
// YES:滾動視圖可以接受觸碰事件
// NO:不接受觸碰事件
// _scrollView.userInteractionEnabled=NO;
_scrollView.userInteractionEnabled=YES;
//設置畫布的大小,縱向效果
_scrollView.contentSize=CGSizeMake(300, 400*9);
for(int i=0;i<10;i++){
//生成圖片名稱
NSString* strName =[NSString stringWithFormat:@"icon%d",i+1];
UIImage *image = [UIImage imageNamed:strName];
//創(chuàng)建圖像視圖對象
UIImageView * iView = [[UIImageView alloc]init];
//圖像賦值
iView.image=image;
//設置圖像視圖在滾動視圖畫布中的位置
iView.frame=CGRectMake(0, 400*i, 300, 400);
[_scrollView addSubview:iView];
}
[self.view addSubview:_scrollView];
//取消按頁滾動效果
_scrollView.pagingEnabled=NO;
// _scrollView.pagingEnabled=YES;
//滾動視圖畫布的移動位置椅邓,偏移位置
//功能:決定畫布顯示的最終圖像結果
_scrollView.contentOffset=CGPointMake(0,0);
//當前視圖控制器作為代理對象
_scrollView.delegate=self;
}
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
// _scrollView.contentOffset=CGPointMake(0, 0);//點擊空白處柠逞,直接跳到設定的坐標位置
//讓滾動視圖移動到指定位置,動畫移動
[_scrollView scrollRectToVisible:CGRectMake(0, 0, 300, 400) animated:YES];
}
//當滾動視圖移動時景馁,只要offset坐標發(fā)生變化板壮,都會調用此函數(shù)
//參數(shù):調用此協(xié)議的滾動視圖對象
//可以使用此函數(shù)來監(jiān)控滾動視圖的位置
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Y=%f",scrollView.contentOffset.y);
}
//當滾動視圖結束拖動時調用此函數(shù)
- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"Did End Drag");
}
//滾動視圖即將開始被拖動時
-(void) scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"WillBeginDrag");
}
//視圖即將結束拖動時調用
-(void) scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
NSLog(@"Will End Drag");
}
//視圖即將減速時調用
-(void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
NSLog(@"Will Begin Decelerating");
}
//視圖已經結束減速時調用,視圖停止的瞬間調用
-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"視圖停止移動");
}