iOS开篇——UI之UIScrollView

 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 }
原文地址:https://www.cnblogs.com/gwkiOS/p/5005886.html