首页 > 代码库 > 【IOS】- ScrollView-01

【IOS】- ScrollView-01

CGSize contentSize:
设置UIScrollView的滚动范围
CGPoint contentOffset:UIScrollView当前滚动的位置
UIEdgeInsets contentInset:增加滚动视图四周的增加滚动范围

1.创建

    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];    [self.view addSubview:scrollView];

2.添加imageview

    UIImage *image = [UIImage imageNamed:@"001.jpeg"];    UIImageView *imageView = [[UIImageView alloc]initWithImage:image];        [scrollView addSubview:imageView];    // 如果不指定uiimageView 大小默认会使用image的大小

3.设置滚动属性

 // 2. 设置滚动视图属性    [scrollView setContentSize:image.size];

4.设置边界属性

  // 设置边界属性    UIEdgeInsets edgs = UIEdgeInsetsMake(10, 10, 10, 10);// 上左下右    [scrollView setContentInset:edgs];

5.设置是否拥有弹簧属性

  [_scrollView setBounces:NO];

6.设置横纵滚动条

    [_scrollView setShowsHorizontalScrollIndicator:NO];    [_scrollView setShowsVerticalScrollIndicator:NO];

7.设置缩小与放大

    // 指定最小缩放比例    [_scrollView setMinimumZoomScale:0.2];    // 指定最大缩放比例    [_scrollView setMaximumZoomScale:2.0];    // 设置滚动视图的代理    [_scrollView setDelegate:self];

8.缩放时执行的方法

#pragma mark 滚动视图的代理方法// 缩放中的代理方法- (void)scrollViewDidZoom:(UIScrollView *)scrollView{    NSLog(@"缩放中。。。");}

9.缩放完成执行的代理方法

// 缩放完成的代理方法- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{    NSLog(@"缩放完成 %f", scale);    // 换个图像试试看    NSString *imageFile = [NSString stringWithFormat:@"%03d.jpeg", arc4random_uniform(10) + 1];    UIImage *image = [UIImage imageNamed:imageFile];        [_imageView setImage:image];}

10.返回要缩放的视图对象

// 一定要记住:本代理方法的返回值就是“要缩放的视图对象”- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{    return _imageView;}

11.移动图像的方法

- (IBAction)moveImage:(UIButton *)sender{    CGPoint offset = _scrollView.contentOffset;        switch (sender.tag) {        case 0:            offset.x -= 50;            break;        case 1:            offset.y -= 50;            break;        case 2:            offset.y += 50;            break;        case 3:            offset.x += 50;            break;        default:            break;    }        // 需要做一个位置的修正    // 水平方向,注意在修正左边位置时,需要使用edge的-left    UIEdgeInsets edge = _scrollView.contentInset;    if (offset.x < -edge.left) {        offset.x = -edge.left;    } else if (offset.x > _scrollView.contentSize.width - _scrollView.bounds.size.width + edge.right) {        offset.x = _scrollView.contentSize.width - _scrollView.bounds.size.width + edge.right;    }        // 垂直方向,注意在修正顶部位置时,需要使用edge的-top    if (offset.y < -edge.top) {        offset.y = -edge.top;    } else if (offset.y > _scrollView.contentSize.height - _scrollView.bounds.size.height + edge.bottom) {        offset.y = _scrollView.contentSize.height - _scrollView.bounds.size.height + edge.bottom;    }        [_scrollView setContentOffset:offset animated:YES];

12.增加移动动画

    // 修改图像的便宜位置    [UIView animateWithDuration:0.3f animations:     ^{         [_scrollView setContentOffset:offset];     }];

 

【IOS】- ScrollView-01