1 //创建一个全屏大小的scrollerView 2 UIScrollView * scrollerView = [[UIScrollView alloc]initWithFrame:self.view.bounds] ; 3 //添加到self.view上 4 [self.view addSubview:scrollerView]; 5 6 //创建一个图片 7 UIImage * image1 = [UIImage imageNamed:@"1"]; 8 9 //设置scrollerView的移动范围 ******** 10 //如果不设置 默认是scrollerView的本身大小移动范围 11 //如果子视图大小没超过scrollerView的自身大小 则不会移动 12 scrollerView.contentSize = CGSizeMake(image1.size.width, image1.size.height); 13 14 //设置子视图的偏移量 ********** 15 // [scrollerView setContentOffset:CGPointMake(200, 200)animated:YES]; 16 //不带动画 17 // scrollerView.contentOffset = CGPointMake(200, 200) ; 18 19 //设置scrollerView子视图距离它本身的位置 20 // scrollerView.contentInset = UIEdgeInsetsMake(10, 10, 30, 30) ; 21 //是否反弹 默认YES可以超出边界 设置为NO不可超出边界 且不可反弹 22 scrollerView.bounces = YES; 23 24 //设置垂直和水平 滚动条是否出现 25 scrollerView.showsHorizontalScrollIndicator = YES; 26 scrollerView.showsVerticalScrollIndicator = YES; 27 28 //设置缩放比例大小 29 scrollerView.minimumZoomScale = 0.5; 30 scrollerView.maximumZoomScale = 2; 31 32 //设置滚动条与scrollerView边界的最小距离 33 scrollerView.scrollIndicatorInsets = UIEdgeInsetsMake(10, 10, 10, 10); 34 //设置滚动条样式 35 scrollerView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 36 /* 37 typedef NS_ENUM(NSInteger, UIScrollViewIndicatorStyle) { 38 UIScrollViewIndicatorStyleDefault, // black with white border. good against any background 39 UIScrollViewIndicatorStyleBlack, // black only. smaller. good against a white background 40 UIScrollViewIndicatorStyleWhite // white only. smaller. good against a black background 41 }; 42 */ 43 44 //设置代理 45 scrollerView.delegate = self; 46 47 //往scrollerView上添加图片 48 [scrollerView addSubview: [[UIImageView alloc]initWithImage:image1]]; 49 50 //设置拖动惯性 数字越大 停下来越慢 51 scrollerView.decelerationRate = 1;
UIScrollViewDelegate 代理方法
1 #pragma mark - delegate方法 2 3 //scrollView正在滚动 4 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 5 // NSLog(@"正在滚动"); 6 } 7 8 //将要开始手指拖动 9 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ 10 NSLog(@"将要开始拖动"); 11 } 12 13 //将要停止手指拖动 14 //第一个参数为它本身 第二个参数为加速度(惯性) 第三个参数为要停到的位置 停止拖动时已经计算好 15 - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { 16 17 NSLog(@"将要停止拖动"); 18 19 } 20 //已经结束手指拖动 21 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ 22 NSLog(@"已经停止拖动"); 23 } 24 25 26 //将要开始惯性滑动 27 - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ 28 NSLog(@"将要开始惯性滑动"); 29 } 30 31 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 32 NSLog(@"已经结束惯性滑动"); 33 34 //设置偏移量为(0,0)点 35 // [scrollView setContentOffset:CGPointZero animated:YES]; 36 } 37 38 //已经结束位移动画 39 - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{ 40 NSLog(@"已经结束位移动画"); 41 } 42 43 - (void)scrollViewDidZoom:(UIScrollView *)scrollView { 44 NSLog(@"发生了缩放"); 45 46 } 47 - (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ 48 //返回值为要缩放的视图 49 return scrollView.subviews[0]; 50 } 51 //将要开始缩放 52 - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view { 53 54 NSLog(@"将要开始缩放"); 55 } 56 //已经结束缩放 57 - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale{ 58 NSLog(@"已经结束缩放"); 59 } 60 61 //能否按顶部返回顶端 62 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{ 63 return YES; 64 } 65 //已经跳到顶端 66 - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{ 67 NSLog(@"已经回到顶端"); 68 }