| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //
- // FLEXImagePreviewViewController.m
- // Flipboard
- //
- // Created by Ryan Olson on 6/12/14.
- // Copyright (c) 2014 Flipboard. All rights reserved.
- //
- #import "FLEXImagePreviewViewController.h"
- #import "FLEXUtility.h"
- @interface FLEXImagePreviewViewController () <UIScrollViewDelegate>
- @property (nonatomic, strong) UIImage *image;
- @property (nonatomic, strong) UIScrollView *scrollView;
- @property (nonatomic, strong) UIImageView *imageView;
- @end
- @implementation FLEXImagePreviewViewController
- - (id)initWithImage:(UIImage *)image
- {
- self = [super initWithNibName:nil bundle:nil];
- if (self) {
- self.title = @"Preview";
- self.image = image;
- }
- return self;
- }
- - (void)viewDidLoad
- {
- [super viewDidLoad];
-
- self.view.backgroundColor = [FLEXUtility scrollViewGrayColor];
-
- self.imageView = [[UIImageView alloc] initWithImage:self.image];
- self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
- self.scrollView.delegate = self;
- self.scrollView.backgroundColor = self.view.backgroundColor;
- self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- [self.scrollView addSubview:self.imageView];
- self.scrollView.contentSize = self.imageView.frame.size;
- self.scrollView.minimumZoomScale = 1.0;
- self.scrollView.maximumZoomScale = 2.0;
- [self.view addSubview:self.scrollView];
-
- self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Copy" style:UIBarButtonItemStylePlain target:self action:@selector(copyButtonPressed:)];
- }
- - (void)viewDidLayoutSubviews
- {
- [self centerContentInScrollViewIfNeeded];
- }
- - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
- {
- return self.imageView;
- }
- - (void)scrollViewDidZoom:(UIScrollView *)scrollView
- {
- [self centerContentInScrollViewIfNeeded];
- }
- - (void)centerContentInScrollViewIfNeeded
- {
- CGFloat horizontalInset = 0.0;
- CGFloat verticalInset = 0.0;
- if (self.scrollView.contentSize.width < self.scrollView.bounds.size.width) {
- horizontalInset = (self.scrollView.bounds.size.width - self.scrollView.contentSize.width) / 2.0;
- }
- if (self.scrollView.contentSize.height < self.scrollView.bounds.size.height) {
- verticalInset = (self.scrollView.bounds.size.height - self.scrollView.contentSize.height) / 2.0;
- }
- self.scrollView.contentInset = UIEdgeInsetsMake(verticalInset, horizontalInset, verticalInset, horizontalInset);
- }
- - (void)copyButtonPressed:(id)sender
- {
- [[UIPasteboard generalPasteboard] setImage:self.image];
- }
- @end
|