zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//
//  PBImageShowViewController.m
//  IphoneBIMe
//
//  Created by zjf on 2018/9/13.
//  Copyright © 2018年 ProBIM. All rights reserved.
//
 
#import "PBImageShowViewController.h"
 
@interface PBImageShowViewController ()<UIScrollViewDelegate>
@property (nonatomic,strong) UIScrollView *scrollView;
@property (nonatomic,weak) UIImageView *imageV;
@end
 
@implementation PBImageShowViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupUI];
   
}
- (void)setupUI {
    self.view.backgroundColor = [UIColor blackColor];
    UIView *navBgView = [[UIView alloc] init];
    navBgView.backgroundColor = [UIColor blackColor];
    [self.view addSubview:navBgView];
    CGFloat height;
    if (IS_IPHONE_X) {
        height = 88.0f;
    }else {
        height = 64.0f;
    }
    [navBgView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.left.right.equalTo(self.view);
        make.height.equalTo(@(height));
    }];
    
    UIButton *button =[UIButton z_textButton:@"取消" fontSize:18 normalColor:[UIColor whiteColor]];
    [button addTarget:self action:@selector(cancelButton) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    [button mas_makeConstraints:^(MASConstraintMaker *make) {
        make.bottom.equalTo(navBgView).offset(-12);
        make.left.equalTo(self.view).offset(20);
        make.size.mas_equalTo(CGSizeMake(50, 30));
    }];
    
    self.scrollView = [[UIScrollView alloc] init];
    self.scrollView.delegate = self;
    [self.view addSubview:self.scrollView];
    [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(navBgView.mas_bottom);
        make.bottom.left.right.equalTo(self.view);
    }];
    
    UIImageView *imageV = [[UIImageView alloc] init];
    self.imageV = imageV;
    imageV.contentMode = UIViewContentModeScaleToFill;
    [self.scrollView addSubview:imageV];
    [imageV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.bottom.left.right.equalTo(self.scrollView);
    }];
    
    imageV.image = self.image;
    self.scrollView.contentSize = self.image.size;
    NSInteger imageW = CGImageGetWidth(self.image.CGImage);
    NSInteger width = self.view.bounds.size.width;
    CGFloat scale = (CGFloat)width / (CGFloat)imageW;
    self.scrollView.maximumZoomScale = 2;
    self.scrollView.minimumZoomScale = scale;
    [self.scrollView setZoomScale:scale animated:NO];
}
- (void)cancelButton {
    [self dismissViewControllerAnimated:NO completion:nil];
}
 
#pragma mark - UIScrollViewDelegate
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return self.imageV;
}
 
- (void)setImage:(UIImage *)image {
    _image = image;
}
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
/*
#pragma mark - Navigation
 
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
 
@end