From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.m | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 161 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.m b/screendisplay/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.m new file mode 100644 index 0000000..6a911da --- /dev/null +++ b/screendisplay/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZGifPhotoPreviewController.m @@ -0,0 +1,161 @@ +// +// TZGifPhotoPreviewController.m +// TZImagePickerController +// +// Created by ttouch on 2016/12/13. +// Copyright �� 2016��� ������. All rights reserved. +// + +#import "TZGifPhotoPreviewController.h" +#import "TZImagePickerController.h" +#import "TZAssetModel.h" +#import "UIView+Layout.h" +#import "TZPhotoPreviewCell.h" +#import "TZImageManager.h" + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +@interface TZGifPhotoPreviewController () { + UIView *_toolBar; + UIButton *_doneButton; + UIProgressView *_progress; + + TZPhotoPreviewView *_previewView; + + UIStatusBarStyle _originStatusBarStyle; +} +@end + +@implementation TZGifPhotoPreviewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor blackColor]; + TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; + if (tzImagePickerVc) { + self.navigationItem.title = [NSString stringWithFormat:@"GIF %@",tzImagePickerVc.previewBtnTitleStr]; + } + [self configPreviewView]; + [self configBottomToolBar]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + _originStatusBarStyle = [UIApplication sharedApplication].statusBarStyle; + [UIApplication sharedApplication].statusBarStyle = iOS7Later ? UIStatusBarStyleLightContent : UIStatusBarStyleBlackOpaque; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [UIApplication sharedApplication].statusBarStyle = _originStatusBarStyle; +} + +- (void)configPreviewView { + _previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero]; + _previewView.model = self.model; + __weak typeof(self) weakSelf = self; + [_previewView setSingleTapGestureBlock:^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + [strongSelf signleTapAction]; + }]; + [self.view addSubview:_previewView]; +} + +- (void)configBottomToolBar { + _toolBar = [[UIView alloc] initWithFrame:CGRectZero]; + CGFloat rgb = 34 / 255.0; + _toolBar.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:0.7]; + + _doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; + _doneButton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside]; + TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; + if (tzImagePickerVc) { + [_doneButton setTitle:tzImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal]; + [_doneButton setTitleColor:tzImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal]; + } else { + [_doneButton setTitle:[NSBundle tz_localizedStringForKey:@"Done"] forState:UIControlStateNormal]; + [_doneButton setTitleColor:[UIColor colorWithRed:(83/255.0) green:(179/255.0) blue:(17/255.0) alpha:1.0] forState:UIControlStateNormal]; + } + [_toolBar addSubview:_doneButton]; + + UILabel *byteLabel = [[UILabel alloc] init]; + byteLabel.textColor = [UIColor whiteColor]; + byteLabel.font = [UIFont systemFontOfSize:13]; + byteLabel.frame = CGRectMake(10, 0, 100, 44); + [[TZImageManager manager] getPhotosBytesWithArray:@[_model] completion:^(NSString *totalBytes) { + byteLabel.text = totalBytes; + }]; + [_toolBar addSubview:byteLabel]; + + [self.view addSubview:_toolBar]; + + if (tzImagePickerVc.gifPreviewPageUIConfigBlock) { + tzImagePickerVc.gifPreviewPageUIConfigBlock(_toolBar, _doneButton); + } +} + +#pragma mark - Layout + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + + _previewView.frame = self.view.bounds; + _previewView.scrollView.frame = self.view.bounds; + CGFloat toolBarHeight = [TZCommonTools tz_isIPhoneX] ? 44 + (83 - 49) : 44; + _toolBar.frame = CGRectMake(0, self.view.tz_height - toolBarHeight, self.view.tz_width, toolBarHeight); + _doneButton.frame = CGRectMake(self.view.tz_width - 44 - 12, 0, 44, 44); + + TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; + if (tzImagePickerVc.gifPreviewPageDidLayoutSubviewsBlock) { + tzImagePickerVc.gifPreviewPageDidLayoutSubviewsBlock(_toolBar, _doneButton); + } +} + +#pragma mark - Click Event + +- (void)signleTapAction { + _toolBar.hidden = !_toolBar.isHidden; + [self.navigationController setNavigationBarHidden:_toolBar.isHidden]; + TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; + if (iOS7Later) { + if (_toolBar.isHidden) { + [UIApplication sharedApplication].statusBarHidden = YES; + } else if (tzImagePickerVc.needShowStatusBar) { + [UIApplication sharedApplication].statusBarHidden = NO; + } + } +} + +- (void)doneButtonClick { + if (self.navigationController) { + TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; + if (imagePickerVc.autoDismiss) { + [self.navigationController dismissViewControllerAnimated:YES completion:^{ + [self callDelegateMethod]; + }]; + } else { + [self callDelegateMethod]; + } + } else { + [self dismissViewControllerAnimated:YES completion:^{ + [self callDelegateMethod]; + }]; + } +} + +- (void)callDelegateMethod { + TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; + UIImage *animatedImage = _previewView.imageView.image; + if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingGifImage:sourceAssets:)]) { + [imagePickerVc.pickerDelegate imagePickerController:imagePickerVc didFinishPickingGifImage:animatedImage sourceAssets:_model.asset]; + } + if (imagePickerVc.didFinishPickingGifImageHandle) { + imagePickerVc.didFinishPickingGifImageHandle(animatedImage,_model.asset); + } +} + +#pragma clang diagnostic pop + +@end -- Gitblit v1.8.0