iOS程序-使用UIScrollView实现图片缩放功能

2025-12-21 16:22:47

1、#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

2、#import "ViewController.h"

@interface ViewController () <UIScrollViewDelegate>

{

    UIImageView *_imageView;

}

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    // 1.添加UIScrollView

    UIScrollView *scrollView = [[UIScrollView alloc] init];

    //    scrollView.frame = CGRectMake(0, 0, 320, 460);

    scrollView.frame = self.view.bounds;

    [self.view addSubview:scrollView];

    

    // 2.添加图片

    UIImage *image = [UIImage imageNamed:@"big.jpg"];

    // 调用initWithImage:方法创建出来的UIImageView,它的宽高默认跟图片的宽高一样

    _imageView = [[UIImageView alloc] initWithImage:image];

    //    // 设置图片

    //    imageView.image = [UIImage imageNamed:@"big.jpg"];

    //

    //    // 设置frame

    //    imageView.frame = CGRectMake(0, 0, imageView.image.size.width, imageView.image.size.height);

    [scrollView addSubview:_imageView];

    

    // 设置内容范围

    scrollView.contentSize = image.size;

    

    // 设置scrollview的代理对象

    scrollView.delegate = self;

    

    // 设置最大伸缩比例

    scrollView.maximumZoomScale = 2.0;

    // 设置最小伸缩比例

    scrollView.minimumZoomScale = 0.2;

}

#pragma mark - UIScrollView 的 代理方法

#pragma mark 这个方法返回的控件就能进行捏合手势缩放操作

#pragma mark 当UIScrollView尝试进行缩放的时候就会调用

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

{

    return _imageView;

}

#pragma mark 当缩放完毕的时候调用

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(double)scale

{

    NSLog(@"结束缩放 - %f", scale);

}

#pragma mark 当正在缩放的时候调用

- (void)scrollViewDidZoom:(UIScrollView *)scrollView

{

    NSLog(@"-----");

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

@end

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢