图片放大缩小功能

比较粗略的实现了,图片的放大缩小功能,第一重要的是,要把图片放在滑动视图上;第二重要的是,设置zoomScale,改变这个值,就改变了图片大小,但是放大后的坐标控制,我没有写,自己写吧(哈哈……..)

#pragma mark - 创建图片视图
- (void) createImageView {

    //1.设置图片大小覆盖滑动视图
    _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 100, 300, 200)];
    //2.添加图片
    _imageView.image = [UIImage imageNamed:@"img10"];
    //3.添加到滑动视图
    [_scrollView addSubview:_imageView];
}

#pragma mark - 创建滑动视图
- (void) createView {

    //1.设置frame
    _scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
    //2.设置用户交互
    _scrollView.userInteractionEnabled = YES;
    //3.设置代理
    _scrollView.delegate = self;
    //4.添加到视图
    [self.view addSubview:_scrollView];

    //5.设置图片的放大、缩小比例
    _scrollView.minimumZoomScale = 1.0;
    _scrollView.maximumZoomScale = 2.0;

    //6.添加手势的方法
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
    //a) 设置点击次数
    tap.numberOfTapsRequired = 2;   //双击效果
    //b) 设置几根手指点击
    tap.numberOfTouchesRequired = 1;
    [_scrollView addGestureRecognizer:tap];

}

#pragma mark - 手势方法实现(双击图片放大,缩小)
- (void) tapAction:(UITapGestureRecognizer *) tap {

    //判断图片是否已经放大,如果放大了,点击则缩小,相反放大。
    if (_scrollView.zoomScale > 1.0) {
        //带动画效果
        [_scrollView setZoomScale:1.0 animated:YES];
    }else {
        [_scrollView setZoomScale:2.0 animated:YES];
    }
}

#pragma mark - 代理方法实现
- (UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return _imageView;
}

图片放大缩小功能_第1张图片

你可能感兴趣的:(ios学习笔记)