点击放大图片

点击放大图片_第1张图片
图片放大.png

创建一个PhotoViewController继承于UIViewController

//保存图片的数组
@property (nonatomic, strong)NSMutableArray *photoArr;
//图片 tag
@property (nonatomic, assign)NSInteger imageTag;

PhotoViewControlle.m

    [super viewDidLoad];
    UIScrollView *myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 375, 667)];
    
    myScrollView.backgroundColor = [UIColor blackColor];
    myScrollView.pagingEnabled = YES;
    myScrollView.bounces = NO;
    
    [self.view addSubview:myScrollView];
    //根据tag 来获取当前点击的图片
    myScrollView.contentOffset = CGPointMake(self.view.frame.size.width * self.imageTag, 10);
    
    myScrollView.contentSize = CGSizeMake(self.view.frame.size.width * self.photoArr.count, 667);
    //创建
    for (int i = 0; i < self.photoArr.count; i++)
    {
        UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width * i + 10, 0, self.view.frame.size.width - 20, self.view.frame.size.height)];
        NSString *imgName = self.photoArr[i];
        img.image = [UIImage imageNamed:imgName];
        
        [myScrollView addSubview:img];
        
        //自适应图片大小
        img.contentMode = UIViewContentModeScaleAspectFit;
        
    }
    
    //轻拍跳出照片浏览
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)];
    
    [myScrollView addGestureRecognizer:tap];
    
}

- (void)tapAction
{
    [self dismissViewControllerAnimated:YES completion:^{
        
        
    }]; 
}
@end

主视图

#import "ViewController.h"
#import "PhotoViewController.h"
@interface ViewController (){
    
    NSMutableArray *array;
    
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    array = [NSMutableArray arrayWithObjects:@"5.jpg",  nil];
    for (int i = 0; i < array.count; i++) {
        
        UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(20 + 880 * i, 100, 70, 70)];
        img.image = [UIImage imageNamed:[array objectAtIndex:i]];
        
        img.userInteractionEnabled = YES;
        
        //截掉边框
        img.clipsToBounds = YES;
        
        img.tag = 1000 + i;
        
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(TapAction:)];
        
        [img addGestureRecognizer:tap];
        
        [self.view addSubview:img];
    }
    
}

- (void)TapAction:(UITapGestureRecognizer *)tap{
    
    PhotoViewController *photoVC = [[PhotoViewController alloc] init];
    photoVC.imageTag = tap.view.tag - 1000 ;//获取当前被点击图片的 tag
    photoVC.photoArr = array;
    [photoVC setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];// 效果
    [self presentModalViewController:photoVC animated:YES];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

你可能感兴趣的:(点击放大图片)