Commit 5374616aa279f36055eadd361cbdb5f691a01f64

Authored by daojian
1 parent b1cd0c87

0.0.25 版本 修改类名称

Showing 78 changed files with 1199 additions and 1182 deletions
CNLiveImagePickerController.podspec
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 Pod::Spec.new do |s| 9 Pod::Spec.new do |s|
10 s.name = 'CNLiveImagePickerController' 10 s.name = 'CNLiveImagePickerController'
11 - s.version = '0.0.24' 11 + s.version = '0.0.25'
12 s.summary = '相册' 12 s.summary = '相册'
13 13
14 # This description is used to generate tags and improve search results. 14 # This description is used to generate tags and improve search results.
CNLiveImagePickerController/Classes/CNEditVideoController.h
@@ -8,11 +8,11 @@ @@ -8,11 +8,11 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@class TZAssetModel; 11 +@class CNTZAssetModel;
12 12
13 @interface CNEditVideoController : UIViewController 13 @interface CNEditVideoController : UIViewController
14 14
15 -@property (nonatomic, strong) TZAssetModel *model; 15 +@property (nonatomic, strong) CNTZAssetModel *model;
16 16
17 @property (nonatomic, strong) NSMutableArray *models; ///< All photo models / 所有图片模型数组 17 @property (nonatomic, strong) NSMutableArray *models; ///< All photo models / 所有图片模型数组
18 @property (nonatomic, strong) NSMutableArray *photos; ///< All photos / 所有图片数组 18 @property (nonatomic, strong) NSMutableArray *photos; ///< All photos / 所有图片数组
CNLiveImagePickerController/Classes/CNEditVideoController.m
@@ -8,12 +8,12 @@ @@ -8,12 +8,12 @@
8 8
9 #import "CNEditVideoController.h" 9 #import "CNEditVideoController.h"
10 #import <AVFoundation/AVFoundation.h> 10 #import <AVFoundation/AVFoundation.h>
11 -#import "TZAssetModel.h" 11 +#import "CNTZAssetModel.h"
12 #import <objc/runtime.h> 12 #import <objc/runtime.h>
13 #import <AssetsLibrary/AssetsLibrary.h> 13 #import <AssetsLibrary/AssetsLibrary.h>
14 -#import "TZImagePickerController.h"  
15 -#import "TZPhotoPreviewCell.h"  
16 -#import "TZImageCropManager.h" 14 +#import "CNTZImagePickerController.h"
  15 +#import "CNTZPhotoPreviewCell.h"
  16 +#import "CNTZImageCropManager.h"
17 #import <SDAutoLayout/SDAutoLayout.h> 17 #import <SDAutoLayout/SDAutoLayout.h>
18 #import <CNLiveBaseKit/CNLiveBaseKit.h> 18 #import <CNLiveBaseKit/CNLiveBaseKit.h>
19 19
@@ -422,8 +422,8 @@ @@ -422,8 +422,8 @@
422 duration = [[self.model.asset valueForProperty:ALAssetPropertyDuration] doubleValue]; 422 duration = [[self.model.asset valueForProperty:ALAssetPropertyDuration] doubleValue];
423 } 423 }
424 424
425 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
426 - _interval = _tzImagePickerVc.maxEditVideoTime/10.0; 425 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  426 + _interval = _CNTZImagePickerVc.maxEditVideoTime/10.0;
427 _measureCount = (NSInteger)(duration / _interval); 427 _measureCount = (NSInteger)(duration / _interval);
428 ///播放视频的 428 ///播放视频的
429 if ([self.model.asset isKindOfClass:[PHAsset class]]) {//PHAsset 429 if ([self.model.asset isKindOfClass:[PHAsset class]]) {//PHAsset
@@ -484,8 +484,8 @@ @@ -484,8 +484,8 @@
484 } 484 }
485 485
486 if (self.backButtonEditClickBlock) { 486 if (self.backButtonEditClickBlock) {
487 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
488 - self.backButtonEditClickBlock(_tzImagePickerVc.isSelectOriginalPhoto); 487 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  488 + self.backButtonEditClickBlock(_CNTZImagePickerVc.isSelectOriginalPhoto);
489 } 489 }
490 UIViewController *vc = [self.navigationController popViewControllerAnimated:NO]; 490 UIViewController *vc = [self.navigationController popViewControllerAnimated:NO];
491 if (!vc) { 491 if (!vc) {
@@ -506,43 +506,43 @@ @@ -506,43 +506,43 @@
506 506
507 507
508 508
509 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
510 - [_tzImagePickerVc showProgressHUD]; 509 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  510 + [_CNTZImagePickerVc showProgressHUD];
511 _doneBtn.enabled = NO; 511 _doneBtn.enabled = NO;
512 _cancelBtn.enabled = NO; 512 _cancelBtn.enabled = NO;
513 __weak typeof(self) weakSelf = self; 513 __weak typeof(self) weakSelf = self;
514 514
515 if (!_avAsset) { 515 if (!_avAsset) {
516 - [_tzImagePickerVc hideProgressHUD];  
517 - [_tzImagePickerVc showAlertWithTitle:@"编辑视频失败"]; 516 + [_CNTZImagePickerVc hideProgressHUD];
  517 + [_CNTZImagePickerVc showAlertWithTitle:@"编辑视频失败"];
518 _doneBtn.enabled = YES; 518 _doneBtn.enabled = YES;
519 _cancelBtn.enabled = YES; 519 _cancelBtn.enabled = YES;
520 return; 520 return;
521 } 521 }
522 [self exportEditVideoForAsset:_avAsset range:[self getTimeRange] complete:^(BOOL isSuc, id asset) { 522 [self exportEditVideoForAsset:_avAsset range:[self getTimeRange] complete:^(BOOL isSuc, id asset) {
523 - [_tzImagePickerVc hideProgressHUD]; 523 + [_CNTZImagePickerVc hideProgressHUD];
524 524
525 if (isSuc) { 525 if (isSuc) {
526 [self stopPlay]; 526 [self stopPlay];
527 - [_tzImagePickerVc showProgressHUD];  
528 - TZAssetModel *editModel = [TZAssetModel modelWithAsset:asset type:TZAssetModelMediaTypeVideo]; 527 + [_CNTZImagePickerVc showProgressHUD];
  528 + CNTZAssetModel *editModel = [CNTZAssetModel modelWithAsset:asset type:CNTZAssetModelMediaTypeVideo];
529 529
530 // 如果没有选中过照片 点击确定时选中当前预览的照片 530 // 如果没有选中过照片 点击确定时选中当前预览的照片
531 - if (_tzImagePickerVc.selectedModels.count == 0 && _tzImagePickerVc.minImagesCount <= 0) {  
532 - [_tzImagePickerVc addSelectedModel:editModel]; 531 + if (_CNTZImagePickerVc.selectedModels.count == 0 && _CNTZImagePickerVc.minImagesCount <= 0) {
  532 + [_CNTZImagePickerVc addSelectedModel:editModel];
533 } 533 }
534 534
535 if (weakSelf.doneButtonEditClickBlock) { 535 if (weakSelf.doneButtonEditClickBlock) {
536 - weakSelf.doneButtonEditClickBlock(_tzImagePickerVc.isSelectOriginalPhoto); 536 + weakSelf.doneButtonEditClickBlock(_CNTZImagePickerVc.isSelectOriginalPhoto);
537 } 537 }
538 - [_tzImagePickerVc hideProgressHUD]; 538 + [_CNTZImagePickerVc hideProgressHUD];
539 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 539 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
540 self->_doneBtn.enabled = YES; 540 self->_doneBtn.enabled = YES;
541 self->_cancelBtn.enabled = YES; 541 self->_cancelBtn.enabled = YES;
542 }); 542 });
543 543
544 }else{ 544 }else{
545 - [_tzImagePickerVc showAlertWithTitle:@"编辑失败"]; 545 + [_CNTZImagePickerVc showAlertWithTitle:@"编辑失败"];
546 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 546 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
547 self->_doneBtn.enabled = YES; 547 self->_doneBtn.enabled = YES;
548 self->_cancelBtn.enabled = YES; 548 self->_cancelBtn.enabled = YES;
CNLiveImagePickerController/Classes/CNImagePickerController.h
1 // 1 //
2 -// CNTZImagePickerControllerViewController.h 2 +// CNCNTZImagePickerControllerViewController.h
3 // CNLiveNetAdd 3 // CNLiveNetAdd
4 // 4 //
5 // Created by 梁星国 on 2018/8/22. 5 // Created by 梁星国 on 2018/8/22.
6 // Copyright © 2018年 cnlive. All rights reserved. 6 // Copyright © 2018年 cnlive. All rights reserved.
7 // 7 //
8 8
9 -#import "TZImagePickerController.h" 9 +#import "CNTZImagePickerController.h"
10 10
11 -@interface CNImagePickerController : TZImagePickerController 11 +@interface CNImagePickerController : CNTZImagePickerController
12 12
13 /** 13 /**
14 配置 14 配置
15 */ 15 */
16 -- (void)configTZImagePicker; 16 +- (void)configCNTZImagePicker;
17 17
18 @end 18 @end
CNLiveImagePickerController/Classes/CNImagePickerController.m
1 // 1 //
2 -// CNTZImagePickerControllerViewController.m 2 +// CNCNTZImagePickerControllerViewController.m
3 // CNLiveNetAdd 3 // CNLiveNetAdd
4 // 4 //
5 // Created by 梁星国 on 2018/8/22. 5 // Created by 梁星国 on 2018/8/22.
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 /** 24 /**
25 配置 25 配置
26 */ 26 */
27 -- (void)configTZImagePicker{ 27 +- (void)configCNTZImagePicker{
28 28
29 // imagePickerVc.navigationBar.translucent = NO; 29 // imagePickerVc.navigationBar.translucent = NO;
30 30
@@ -77,7 +77,7 @@ @@ -77,7 +77,7 @@
77 self.allowCrop = NO; 77 self.allowCrop = NO;
78 self.needCircleCrop = NO; 78 self.needCircleCrop = NO;
79 // 设置横屏下的裁剪尺寸 79 // 设置横屏下的裁剪尺寸
80 - // imagePickerVc.cropRectLandscape = CGRectMake((self.view.tz_height - widthHeight) / 2, left, widthHeight, widthHeight); 80 + // imagePickerVc.cropRectLandscape = CGRectMake((self.view.CNTZ_height - widthHeight) / 2, left, widthHeight, widthHeight);
81 /* 81 /*
82 [imagePickerVc setCropViewSettingBlock:^(UIView *cropView) { 82 [imagePickerVc setCropViewSettingBlock:^(UIView *cropView) {
83 cropView.layer.borderColor = [UIColor redColor].CGColor; 83 cropView.layer.borderColor = [UIColor redColor].CGColor;
@@ -115,7 +115,7 @@ @@ -115,7 +115,7 @@
115 // imagePickerVc.preferredLanguage = @"zh-Hans"; 115 // imagePickerVc.preferredLanguage = @"zh-Hans";
116 116
117 // 设置languageBundle以使用其它语言 / Set languageBundle to use other language 117 // 设置languageBundle以使用其它语言 / Set languageBundle to use other language
118 - // imagePickerVc.languageBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"tz-ru" ofType:@"lproj"]]; 118 + // imagePickerVc.languageBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"CNTZ-ru" ofType:@"lproj"]];
119 119
120 /// 【自定义各页面/组件的样式】在界面初始化/组件setModel完成后调用,允许外界修改样式等 120 /// 【自定义各页面/组件的样式】在界面初始化/组件setModel完成后调用,允许外界修改样式等
121 //相册 121 //相册
@@ -238,12 +238,12 @@ @@ -238,12 +238,12 @@
238 238
239 }]; 239 }];
240 //相册cell 240 //相册cell
241 - [self setAssetCellDidSetModelBlock:^(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView) { 241 + [self setAssetCellDidSetModelBlock:^(CNTZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView) {
242 242
243 243
244 }]; 244 }];
245 //相簿 245 //相簿
246 - [self setAlbumCellDidSetModelBlock:^(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel) { 246 + [self setAlbumCellDidSetModelBlock:^(CNTZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel) {
247 [posterImageView setBackgroundColor:[UIColor whiteColor]]; 247 [posterImageView setBackgroundColor:[UIColor whiteColor]];
248 248
249 }]; 249 }];
@@ -285,10 +285,10 @@ @@ -285,10 +285,10 @@
285 285
286 }]; 286 }];
287 //相册cell 287 //相册cell
288 - [self setAssetCellDidLayoutSubviewsBlock:^(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView) { 288 + [self setAssetCellDidLayoutSubviewsBlock:^(CNTZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView) {
289 }]; 289 }];
290 //相簿 290 //相簿
291 - [self setAlbumCellDidLayoutSubviewsBlock:^(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel) { 291 + [self setAlbumCellDidLayoutSubviewsBlock:^(CNTZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel) {
292 292
293 }]; 293 }];
294 294
CNLiveImagePickerController/Classes/CNImagePickerManager.h
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 #pragma mark - TODO: 导出 13 #pragma mark - TODO: 导出
14 typedef void (^didFinishPickingPhotosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto);//选着图片返回 14 typedef void (^didFinishPickingPhotosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto);//选着图片返回
15 15
16 -typedef void (^didNewFinishPickingPhotosHandle) (NSArray<UIImage *> *photos,NSArray<TZAssetModel *> *models,NSArray *assets,BOOL isSelectOriginalPhoto); 16 +typedef void (^didNewFinishPickingPhotosHandle) (NSArray<UIImage *> *photos,NSArray<CNTZAssetModel *> *models,NSArray *assets,BOOL isSelectOriginalPhoto);
17 17
18 //typedef void (^failureBlock)(NSMutableArray* errorArray, NSError *error);//失败数组,错误 18 //typedef void (^failureBlock)(NSMutableArray* errorArray, NSError *error);//失败数组,错误
19 19
@@ -37,20 +37,20 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) { @@ -37,20 +37,20 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) {
37 37
38 @param maxImagesCount 最大图片 38 @param maxImagesCount 最大图片
39 @param columnNumber 列个数 39 @param columnNumber 列个数
40 - @param delegate 代理(UIViewController<TZImagePickerControllerDelegate>) 40 + @param delegate 代理(UIViewController<CNTZImagePickerControllerDelegate>)
41 @param pushPhotoPickerVc 是否跳转到相册 41 @param pushPhotoPickerVc 是否跳转到相册
42 @param isSelectOriginalPhoto 是否原图 42 @param isSelectOriginalPhoto 是否原图
43 @param selectedAssets 选择图片 43 @param selectedAssets 选择图片
44 @param enterType 进入方式 44 @param enterType 进入方式
45 @param pickingPhotosHandle 选择结束回调 45 @param pickingPhotosHandle 选择结束回调
46 */ 46 */
47 -+ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<TZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto selectedAssets:(NSMutableArray *)selectedAssets enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle; 47 ++ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<CNTZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto selectedAssets:(NSMutableArray *)selectedAssets enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle;
48 48
49 /** 49 /**
50 预览图片 50 预览图片
51 51
52 @param maxImagesCount 最大限制 52 @param maxImagesCount 最大限制
53 - @param delegate 代理(UIViewController<TZImagePickerControllerDelegate>) 53 + @param delegate 代理(UIViewController<CNTZImagePickerControllerDelegate>)
54 @param selectedAssets 选中Assets 54 @param selectedAssets 选中Assets
55 @param selectedPhotos 选中Photos 55 @param selectedPhotos 选中Photos
56 @param index 选中第几个 56 @param index 选中第几个
@@ -58,29 +58,29 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) { @@ -58,29 +58,29 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) {
58 @param enterType 进入方式 58 @param enterType 进入方式
59 @param pickingPhotosHandle 回调参数 59 @param pickingPhotosHandle 回调参数
60 */ 60 */
61 -+ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<TZImagePickerControllerDelegate>)delegate selectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle; 61 ++ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<CNTZImagePickerControllerDelegate>)delegate selectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle;
62 62
63 63
64 /** 64 /**
65 预览单个视频 65 预览单个视频
66 66
67 @param selectedAsset 选择视频 67 @param selectedAsset 选择视频
68 - @param delegate 代理(UIViewController<TZImagePickerControllerDelegate>) 68 + @param delegate 代理(UIViewController<CNTZImagePickerControllerDelegate>)
69 */ 69 */
70 -+ (void)ImagePickerWithSelectedAsset:(id)selectedAsset delegate:(id<TZImagePickerControllerDelegate>)delegate; 70 ++ (void)ImagePickerWithSelectedAsset:(id)selectedAsset delegate:(id<CNTZImagePickerControllerDelegate>)delegate;
71 71
72 72
73 /** 73 /**
74 保存图片 74 保存图片
75 75
76 - @param delegate 代理(UIViewController<TZImagePickerControllerDelegate>) 76 + @param delegate 代理(UIViewController<CNTZImagePickerControllerDelegate>)
77 @param image 图片 77 @param image 图片
78 @param location 地点 78 @param location 地点
79 @param success 成功 79 @param success 成功
80 @param failure 失败 80 @param failure 失败
81 81
82 */ 82 */
83 -+(void)ImageManagerSavePhotoWithDelegate:(id<TZImagePickerControllerDelegate>)delegate image:(UIImage *)image location:(CLLocation *)location success:(void (^)(TZAssetModel *assetModel))success failure:(void (^)(NSError *error))failure; 83 ++(void)ImageManagerSavePhotoWithDelegate:(id<CNTZImagePickerControllerDelegate>)delegate image:(UIImage *)image location:(CLLocation *)location success:(void (^)(CNTZAssetModel *assetModel))success failure:(void (^)(NSError *error))failure;
84 84
85 85
86 /** 86 /**
@@ -89,7 +89,7 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) { @@ -89,7 +89,7 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) {
89 @param asset asset 89 @param asset asset
90 @return 返回类型 90 @return 返回类型
91 */ 91 */
92 -+ (TZAssetModelMediaType)getAssetType:(id)asset; 92 ++ (CNTZAssetModelMediaType)getAssetType:(id)asset;
93 93
94 94
95 @end 95 @end
CNLiveImagePickerController/Classes/CNImagePickerManager.m
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 @implementation CNImagePickerManager 14 @implementation CNImagePickerManager
15 15
16 /// 打开相册选择图片 16 /// 打开相册选择图片
17 -+ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<TZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto selectedAssets:(NSMutableArray *)selectedAssets enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle{ 17 ++ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<CNTZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto selectedAssets:(NSMutableArray *)selectedAssets enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle{
18 18
19 if (![delegate isKindOfClass:[UIViewController class]]) { 19 if (![delegate isKindOfClass:[UIViewController class]]) {
20 return; 20 return;
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 UIViewController *vc = (UIViewController *)delegate; 22 UIViewController *vc = (UIViewController *)delegate;
23 23
24 CNImagePickerController *imagePickerVc = [[CNImagePickerController alloc] initWithMaxImagesCount:maxImagesCount columnNumber:columnNumber delegate:delegate pushPhotoPickerVc:pushPhotoPickerVc]; 24 CNImagePickerController *imagePickerVc = [[CNImagePickerController alloc] initWithMaxImagesCount:maxImagesCount columnNumber:columnNumber delegate:delegate pushPhotoPickerVc:pushPhotoPickerVc];
25 - [imagePickerVc configTZImagePicker];//基本配置 25 + [imagePickerVc configCNTZImagePicker];//基本配置
26 //特殊配置 26 //特殊配置
27 switch (enterType) { 27 switch (enterType) {
28 28
@@ -31,6 +31,8 @@ @@ -31,6 +31,8 @@
31 imagePickerVc.maxVideoDuration = kFriendsCircle_limit_video_max_upload;//编辑视频最大长度 31 imagePickerVc.maxVideoDuration = kFriendsCircle_limit_video_max_upload;//编辑视频最大长度
32 // 3. 设置是否可以混选选择视频/图片/原图 32 // 3. 设置是否可以混选选择视频/图片/原图
33 imagePickerVc.allowPickingMultipleVideo = NO; 33 imagePickerVc.allowPickingMultipleVideo = NO;
  34 + //4.选择一张图片情况下不可选视频
  35 + imagePickerVc.allowPickingVideo = NO;
34 break; 36 break;
35 case CNImagePickerEnterTypeComment: 37 case CNImagePickerEnterTypeComment:
36 #pragma mark - TODO:根据不同设置 38 #pragma mark - TODO:根据不同设置
@@ -80,7 +82,7 @@ @@ -80,7 +82,7 @@
80 NSLog(@"输出infos = %@",infos); 82 NSLog(@"输出infos = %@",infos);
81 }]; 83 }];
82 84
83 - [imagePickerVc setDidNewFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray<TZAssetModel *> *models, NSArray *assets, BOOL isSelectOriginalPhoto) { 85 + [imagePickerVc setDidNewFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray<CNTZAssetModel *> *models, NSArray *assets, BOOL isSelectOriginalPhoto) {
84 NSLog(@"输出models = %@",models); 86 NSLog(@"输出models = %@",models);
85 }]; 87 }];
86 88
@@ -88,7 +90,7 @@ @@ -88,7 +90,7 @@
88 } 90 }
89 91
90 /// 预览图片 92 /// 预览图片
91 -+ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<TZImagePickerControllerDelegate>)delegate selectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle { 93 ++ (void)ImagePickerWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<CNTZImagePickerControllerDelegate>)delegate selectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto enterType:(CNImagePickerEnterType )enterType pickingPhotosHandle:(didFinishPickingPhotosHandle) pickingPhotosHandle {
92 94
93 if (![delegate isKindOfClass:[UIViewController class]]) { 95 if (![delegate isKindOfClass:[UIViewController class]]) {
94 return; 96 return;
@@ -96,7 +98,7 @@ @@ -96,7 +98,7 @@
96 UIViewController *vc = (UIViewController *)delegate; 98 UIViewController *vc = (UIViewController *)delegate;
97 99
98 CNImagePickerController *imagePickerVc = [[CNImagePickerController alloc] initWithSelectedAssets:selectedAssets selectedPhotos:selectedPhotos index:index]; 100 CNImagePickerController *imagePickerVc = [[CNImagePickerController alloc] initWithSelectedAssets:selectedAssets selectedPhotos:selectedPhotos index:index];
99 - [imagePickerVc configTZImagePicker];//基本配置 101 + [imagePickerVc configCNTZImagePicker];//基本配置
100 imagePickerVc.modalPresentationStyle = UIModalPresentationFullScreen; 102 imagePickerVc.modalPresentationStyle = UIModalPresentationFullScreen;
101 //特殊配置 103 //特殊配置
102 switch (enterType) { 104 switch (enterType) {
@@ -136,15 +138,15 @@ @@ -136,15 +138,15 @@
136 } 138 }
137 139
138 /// 预览单个视频 140 /// 预览单个视频
139 -+ (void)ImagePickerWithSelectedAsset:(id)selectedAsset delegate:(id<TZImagePickerControllerDelegate>)delegate { 141 ++ (void)ImagePickerWithSelectedAsset:(id)selectedAsset delegate:(id<CNTZImagePickerControllerDelegate>)delegate {
140 142
141 if (![delegate isKindOfClass:[UIViewController class]]) { 143 if (![delegate isKindOfClass:[UIViewController class]]) {
142 return; 144 return;
143 } 145 }
144 UIViewController *vc = (UIViewController *)delegate; 146 UIViewController *vc = (UIViewController *)delegate;
145 147
146 - TZVideoPlayerController *videoVC = [[TZVideoPlayerController alloc] init];  
147 - TZAssetModel *model = [TZAssetModel modelWithAsset:selectedAsset type:TZAssetModelMediaTypeVideo timeLength:@""]; 148 + CNTZVideoPlayerController *videoVC = [[CNTZVideoPlayerController alloc] init];
  149 + CNTZAssetModel *model = [CNTZAssetModel modelWithAsset:selectedAsset type:CNTZAssetModelMediaTypeVideo timeLength:@""];
148 videoVC.isOther = YES;//(LXG)相册外进入 150 videoVC.isOther = YES;//(LXG)相册外进入
149 videoVC.model = model; 151 videoVC.model = model;
150 videoVC.modalPresentationStyle = UIModalPresentationFullScreen; 152 videoVC.modalPresentationStyle = UIModalPresentationFullScreen;
@@ -153,19 +155,19 @@ @@ -153,19 +155,19 @@
153 } 155 }
154 156
155 /// 返回类型 157 /// 返回类型
156 -+ (TZAssetModelMediaType)getAssetType:(id)asset { 158 ++ (CNTZAssetModelMediaType)getAssetType:(id)asset {
157 159
158 - TZAssetModelMediaType type = TZAssetModelMediaTypePhoto; 160 + CNTZAssetModelMediaType type = CNTZAssetModelMediaTypePhoto;
159 if ([asset isKindOfClass:[PHAsset class]]) { 161 if ([asset isKindOfClass:[PHAsset class]]) {
160 PHAsset *phAsset = (PHAsset *)asset; 162 PHAsset *phAsset = (PHAsset *)asset;
161 - if (phAsset.mediaType == PHAssetMediaTypeVideo) type = TZAssetModelMediaTypeVideo;  
162 - else if (phAsset.mediaType == PHAssetMediaTypeAudio) type = TZAssetModelMediaTypeAudio; 163 + if (phAsset.mediaType == PHAssetMediaTypeVideo) type = CNTZAssetModelMediaTypeVideo;
  164 + else if (phAsset.mediaType == PHAssetMediaTypeAudio) type = CNTZAssetModelMediaTypeAudio;
163 else if (phAsset.mediaType == PHAssetMediaTypeImage) { 165 else if (phAsset.mediaType == PHAssetMediaTypeImage) {
164 if (iOS9_1Later) { 166 if (iOS9_1Later) {
165 if (@available(iOS 9.1, *)) { 167 if (@available(iOS 9.1, *)) {
166 if (phAsset.mediaSubtypes == PHAssetMediaSubtypePhotoLive) 168 if (phAsset.mediaSubtypes == PHAssetMediaSubtypePhotoLive)
167 { 169 {
168 - type = TZAssetModelMediaTypeLivePhoto; 170 + type = CNTZAssetModelMediaTypeLivePhoto;
169 } 171 }
170 } else { 172 } else {
171 // Fallback on earlier versions 173 // Fallback on earlier versions
@@ -173,38 +175,38 @@ @@ -173,38 +175,38 @@
173 } 175 }
174 // Gif 176 // Gif
175 if ([[phAsset valueForKey:@"filename"] hasSuffix:@"GIF"]) { 177 if ([[phAsset valueForKey:@"filename"] hasSuffix:@"GIF"]) {
176 - type = TZAssetModelMediaTypePhotoGif; 178 + type = CNTZAssetModelMediaTypePhotoGif;
177 } 179 }
178 } 180 }
179 } else { 181 } else {
180 if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) { 182 if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
181 - type = TZAssetModelMediaTypeVideo; 183 + type = CNTZAssetModelMediaTypeVideo;
182 } 184 }
183 } 185 }
184 return type; 186 return type;
185 } 187 }
186 188
187 189
188 -+(void)ImageManagerSavePhotoWithDelegate:(id<TZImagePickerControllerDelegate>)delegate image:(UIImage *)image location:(CLLocation *)location success:(void (^)(TZAssetModel *assetModel))success failure:(void (^)(NSError *error))failure { 190 ++(void)ImageManagerSavePhotoWithDelegate:(id<CNTZImagePickerControllerDelegate>)delegate image:(UIImage *)image location:(CLLocation *)location success:(void (^)(CNTZAssetModel *assetModel))success failure:(void (^)(NSError *error))failure {
189 191
190 - TZImagePickerController *tzImagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:delegate];  
191 - tzImagePickerVc.sortAscendingByModificationDate = YES; 192 + CNTZImagePickerController *CNTZImagePickerVc = [[CNTZImagePickerController alloc] initWithMaxImagesCount:1 delegate:delegate];
  193 + CNTZImagePickerVc.sortAscendingByModificationDate = YES;
192 194
193 - [tzImagePickerVc showProgressHUD]; 195 + [CNTZImagePickerVc showProgressHUD];
194 // save photo and get asset / 保存图片,获取到asset 196 // save photo and get asset / 保存图片,获取到asset
195 - [[TZImageManager manager] savePhotoWithImage:image location:location completion:^(NSError *error){ 197 + [[CNTZImageManager manager] savePhotoWithImage:image location:location completion:^(NSError *error){
196 198
197 if (error) { 199 if (error) {
198 - [tzImagePickerVc hideProgressHUD]; 200 + [CNTZImagePickerVc hideProgressHUD];
199 failure(error); 201 failure(error);
200 NSLog(@"图片保存失败 %@",error); 202 NSLog(@"图片保存失败 %@",error);
201 } else { 203 } else {
202 204
203 - [[TZImageManager manager] getCameraRollAlbum:NO allowPickingImage:YES needFetchAssets:YES completion:^(TZAlbumModel *model) {  
204 - [[TZImageManager manager] getAssetsFromFetchResult:model.result allowPickingVideo:NO allowPickingImage:YES completion:^(NSArray<TZAssetModel *> *models) {  
205 - [tzImagePickerVc hideProgressHUD];  
206 - TZAssetModel *assetModel = [models firstObject];  
207 - if (tzImagePickerVc.sortAscendingByModificationDate) { 205 + [[CNTZImageManager manager] getCameraRollAlbum:NO allowPickingImage:YES needFetchAssets:YES completion:^(CNTZAlbumModel *model) {
  206 + [[CNTZImageManager manager] getAssetsFromFetchResult:model.result allowPickingVideo:NO allowPickingImage:YES completion:^(NSArray<CNTZAssetModel *> *models) {
  207 + [CNTZImagePickerVc hideProgressHUD];
  208 + CNTZAssetModel *assetModel = [models firstObject];
  209 + if (CNTZImagePickerVc.sortAscendingByModificationDate) {
208 assetModel = [models lastObject]; 210 assetModel = [models lastObject];
209 } 211 }
210 success(assetModel); 212 success(assetModel);
CNLiveImagePickerController/Classes/TZAssetCell.h renamed to CNLiveImagePickerController/Classes/CNTZAssetCell.h
1 // 1 //
2 -// TZAssetCell.h  
3 -// TZImagePickerController 2 +// CNTZAssetCell.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
@@ -10,21 +10,21 @@ @@ -10,21 +10,21 @@
10 #import <Photos/Photos.h> 10 #import <Photos/Photos.h>
11 11
12 typedef enum : NSUInteger { 12 typedef enum : NSUInteger {
13 - TZAssetCellTypePhoto = 0,  
14 - TZAssetCellTypeLivePhoto,  
15 - TZAssetCellTypePhotoGif,  
16 - TZAssetCellTypeVideo,  
17 - TZAssetCellTypeAudio,  
18 -} TZAssetCellType;  
19 -  
20 -@class TZAssetModel;  
21 -@interface TZAssetCell : UICollectionViewCell 13 + CNTZAssetCellTypePhoto = 0,
  14 + CNTZAssetCellTypeLivePhoto,
  15 + CNTZAssetCellTypePhotoGif,
  16 + CNTZAssetCellTypeVideo,
  17 + CNTZAssetCellTypeAudio,
  18 +} CNTZAssetCellType;
  19 +
  20 +@class CNTZAssetModel;
  21 +@interface CNTZAssetCell : UICollectionViewCell
22 @property (weak, nonatomic) UIButton *selectPhotoButton; 22 @property (weak, nonatomic) UIButton *selectPhotoButton;
23 @property (weak, nonatomic) UIButton *cannotSelectLayerButton; 23 @property (weak, nonatomic) UIButton *cannotSelectLayerButton;
24 -@property (nonatomic, strong) TZAssetModel *model; 24 +@property (nonatomic, strong) CNTZAssetModel *model;
25 @property (assign, nonatomic) NSInteger index; 25 @property (assign, nonatomic) NSInteger index;
26 @property (nonatomic, copy) void (^didSelectPhotoBlock)(BOOL); 26 @property (nonatomic, copy) void (^didSelectPhotoBlock)(BOOL);
27 -@property (nonatomic, assign) TZAssetCellType type; 27 +@property (nonatomic, assign) CNTZAssetCellType type;
28 @property (nonatomic, assign) BOOL allowPickingGif; 28 @property (nonatomic, assign) BOOL allowPickingGif;
29 @property (nonatomic, assign) BOOL allowPickingMultipleVideo; 29 @property (nonatomic, assign) BOOL allowPickingMultipleVideo;
30 @property (nonatomic, copy) NSString *representedAssetIdentifier; 30 @property (nonatomic, copy) NSString *representedAssetIdentifier;
@@ -37,21 +37,21 @@ typedef enum : NSUInteger { @@ -37,21 +37,21 @@ typedef enum : NSUInteger {
37 @property (assign, nonatomic) BOOL allowPreview; 37 @property (assign, nonatomic) BOOL allowPreview;
38 @property (assign, nonatomic) BOOL useCachedImage; 38 @property (assign, nonatomic) BOOL useCachedImage;
39 39
40 -@property (nonatomic, copy) void (^assetCellDidSetModelBlock)(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);  
41 -@property (nonatomic, copy) void (^assetCellDidLayoutSubviewsBlock)(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView); 40 +@property (nonatomic, copy) void (^assetCellDidSetModelBlock)(CNTZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);
  41 +@property (nonatomic, copy) void (^assetCellDidLayoutSubviewsBlock)(CNTZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);
42 @end 42 @end
43 43
44 44
45 -@class TZAlbumModel;  
46 -@interface TZAlbumCell : UITableViewCell  
47 -@property (nonatomic, strong) TZAlbumModel *model; 45 +@class CNTZAlbumModel;
  46 +@interface CNTZAlbumCell : UITableViewCell
  47 +@property (nonatomic, strong) CNTZAlbumModel *model;
48 @property (weak, nonatomic) UIButton *selectedCountButton; 48 @property (weak, nonatomic) UIButton *selectedCountButton;
49 49
50 -@property (nonatomic, copy) void (^albumCellDidSetModelBlock)(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel);  
51 -@property (nonatomic, copy) void (^albumCellDidLayoutSubviewsBlock)(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel); 50 +@property (nonatomic, copy) void (^albumCellDidSetModelBlock)(CNTZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel);
  51 +@property (nonatomic, copy) void (^albumCellDidLayoutSubviewsBlock)(CNTZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel);
52 @end 52 @end
53 53
54 54
55 -@interface TZAssetCameraCell : UICollectionViewCell 55 +@interface CNTZAssetCameraCell : UICollectionViewCell
56 @property (nonatomic, strong) UIImageView *imageView; 56 @property (nonatomic, strong) UIImageView *imageView;
57 @end 57 @end
CNLiveImagePickerController/Classes/TZAssetCell.m renamed to CNLiveImagePickerController/Classes/CNTZAssetCell.m
1 // 1 //
2 -// TZAssetCell.m  
3 -// TZImagePickerController 2 +// CNTZAssetCell.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZAssetCell.h"  
10 -#import "TZAssetModel.h"  
11 -#import "UIView+TZLayout.h"  
12 -#import "TZImageManager.h"  
13 -#import "TZImagePickerController.h"  
14 -#import "TZProgressView.h" 9 +#import "CNTZAssetCell.h"
  10 +#import "CNTZAssetModel.h"
  11 +#import "UIView+CNTZLayout.h"
  12 +#import "CNTZImageManager.h"
  13 +#import "CNTZImagePickerController.h"
  14 +#import "CNTZProgressView.h"
15 15
16 -@interface TZAssetCell () 16 +@interface CNTZAssetCell ()
17 @property (weak, nonatomic) UIImageView *imageView; // The photo / 照片 17 @property (weak, nonatomic) UIImageView *imageView; // The photo / 照片
18 @property (weak, nonatomic) UIImageView *selectImageView; 18 @property (weak, nonatomic) UIImageView *selectImageView;
19 @property (weak, nonatomic) UILabel *indexLabel; 19 @property (weak, nonatomic) UILabel *indexLabel;
@@ -22,23 +22,23 @@ @@ -22,23 +22,23 @@
22 @property (strong, nonatomic) UITapGestureRecognizer *tapGesture; 22 @property (strong, nonatomic) UITapGestureRecognizer *tapGesture;
23 23
24 @property (nonatomic, weak) UIImageView *videoImgView; 24 @property (nonatomic, weak) UIImageView *videoImgView;
25 -@property (nonatomic, strong) TZProgressView *progressView; 25 +@property (nonatomic, strong) CNTZProgressView *progressView;
26 @property (nonatomic, assign) int32_t bigImageRequestID; 26 @property (nonatomic, assign) int32_t bigImageRequestID;
27 @end 27 @end
28 28
29 -@implementation TZAssetCell 29 +@implementation CNTZAssetCell
30 30
31 -- (void)setModel:(TZAssetModel *)model { 31 +- (void)setModel:(CNTZAssetModel *)model {
32 _model = model; 32 _model = model;
33 if (iOS8Later) { 33 if (iOS8Later) {
34 - self.representedAssetIdentifier = [[TZImageManager manager] getAssetIdentifier:model.asset]; 34 + self.representedAssetIdentifier = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
35 } 35 }
36 if (self.useCachedImage && model.cachedImage) { 36 if (self.useCachedImage && model.cachedImage) {
37 self.imageView.image = model.cachedImage; 37 self.imageView.image = model.cachedImage;
38 } else { 38 } else {
39 self.model.cachedImage = nil; 39 self.model.cachedImage = nil;
40 __weak typeof(self) weakSelf = self; 40 __weak typeof(self) weakSelf = self;
41 - int32_t imageRequestID = [[TZImageManager manager] getPhotoWithAsset:model.asset photoWidth:self.tz_width completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 41 + int32_t imageRequestID = [[CNTZImageManager manager] getPhotoWithAsset:model.asset photoWidth:self.CNTZ_width completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
42 // NSLog(@"输出导出参数info = %@",info); 42 // NSLog(@"输出导出参数info = %@",info);
43 if (photo) {//lxg: 裂图 43 if (photo) {//lxg: 裂图
44 model.isExport = YES; 44 model.isExport = YES;
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 [weakSelf hideProgressView]; 53 [weakSelf hideProgressView];
54 return; 54 return;
55 } 55 }
56 - if ([weakSelf.representedAssetIdentifier isEqualToString:[[TZImageManager manager] getAssetIdentifier:model.asset]]) { 56 + if ([weakSelf.representedAssetIdentifier isEqualToString:[[CNTZImageManager manager] getAssetIdentifier:model.asset]]) {
57 weakSelf.imageView.image = photo; 57 weakSelf.imageView.image = photo;
58 weakSelf.model.cachedImage = photo; 58 weakSelf.model.cachedImage = photo;
59 } else { 59 } else {
@@ -74,13 +74,13 @@ @@ -74,13 +74,13 @@
74 } 74 }
75 75
76 /** 处理视频 */ 76 /** 处理视频 */
77 - if (model.type == TZAssetModelMediaTypeVideo) { 77 + if (model.type == CNTZAssetModelMediaTypeVideo) {
78 78
79 if (model.isCheckICloudType) {//是否检测来源 79 if (model.isCheckICloudType) {//是否检测来源
80 NSLog(@"输出检测过来源"); 80 NSLog(@"输出检测过来源");
81 }else { 81 }else {
82 82
83 - [[TZImageManager manager] getVideoWithAsset:self.model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) { 83 + [[CNTZImageManager manager] getVideoWithAsset:self.model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) {
84 NSLog(@"输出识别后结果 = %@",info); 84 NSLog(@"输出识别后结果 = %@",info);
85 NSLog(@"Info:%@",info); 85 NSLog(@"Info:%@",info);
86 model.isCheckICloudType = YES; 86 model.isCheckICloudType = YES;
@@ -151,7 +151,7 @@ @@ -151,7 +151,7 @@
151 151
152 self.type = (NSInteger)model.type; 152 self.type = (NSInteger)model.type;
153 // 让宽度/高度小于 最小可选照片尺寸 的图片不能选中 153 // 让宽度/高度小于 最小可选照片尺寸 的图片不能选中
154 - if (![[TZImageManager manager] isPhotoSelectableWithAsset:model.asset]) { 154 + if (![[CNTZImageManager manager] isPhotoSelectableWithAsset:model.asset]) {
155 if (_selectImageView.hidden == NO) { 155 if (_selectImageView.hidden == NO) {
156 self.selectPhotoButton.hidden = YES; 156 self.selectPhotoButton.hidden = YES;
157 _selectImageView.hidden = YES; 157 _selectImageView.hidden = YES;
@@ -164,7 +164,7 @@ @@ -164,7 +164,7 @@
164 [self cancelBigImageRequest]; 164 [self cancelBigImageRequest];
165 } 165 }
166 if (model.needOscillatoryAnimation) { 166 if (model.needOscillatoryAnimation) {
167 - [UIView showOscillatoryAnimationWithLayer:self.selectImageView.layer type:TZOscillatoryAnimationToBigger]; 167 + [UIView showOscillatoryAnimationWithLayer:self.selectImageView.layer type:CNTZOscillatoryAnimationToBigger];
168 } 168 }
169 model.needOscillatoryAnimation = NO; 169 model.needOscillatoryAnimation = NO;
170 170
@@ -189,7 +189,7 @@ @@ -189,7 +189,7 @@
189 189
190 - (void)setShowSelectBtn:(BOOL)showSelectBtn { 190 - (void)setShowSelectBtn:(BOOL)showSelectBtn {
191 _showSelectBtn = showSelectBtn; 191 _showSelectBtn = showSelectBtn;
192 - BOOL selectable = [[TZImageManager manager] isPhotoSelectableWithAsset:self.model.asset]; 192 + BOOL selectable = [[CNTZImageManager manager] isPhotoSelectableWithAsset:self.model.asset];
193 if (!self.selectPhotoButton.hidden) { 193 if (!self.selectPhotoButton.hidden) {
194 self.selectPhotoButton.hidden = !showSelectBtn || !selectable; 194 self.selectPhotoButton.hidden = !showSelectBtn || !selectable;
195 } 195 }
@@ -198,9 +198,9 @@ @@ -198,9 +198,9 @@
198 } 198 }
199 } 199 }
200 200
201 -- (void)setType:(TZAssetCellType)type { 201 +- (void)setType:(CNTZAssetCellType)type {
202 _type = type; 202 _type = type;
203 - if (type == TZAssetCellTypePhoto || type == TZAssetCellTypeLivePhoto || (type == TZAssetCellTypePhotoGif && !self.allowPickingGif) || self.allowPickingMultipleVideo) { 203 + if (type == CNTZAssetCellTypePhoto || type == CNTZAssetCellTypeLivePhoto || (type == CNTZAssetCellTypePhotoGif && !self.allowPickingGif) || self.allowPickingMultipleVideo) {
204 _selectImageView.hidden = NO; 204 _selectImageView.hidden = NO;
205 _selectPhotoButton.hidden = NO; 205 _selectPhotoButton.hidden = NO;
206 _bottomView.hidden = YES; 206 _bottomView.hidden = YES;
@@ -209,17 +209,17 @@ @@ -209,17 +209,17 @@
209 _selectPhotoButton.hidden = YES; 209 _selectPhotoButton.hidden = YES;
210 } 210 }
211 211
212 - if (type == TZAssetCellTypeVideo) { 212 + if (type == CNTZAssetCellTypeVideo) {
213 self.bottomView.hidden = NO; 213 self.bottomView.hidden = NO;
214 self.timeLength.text = _model.timeLength; 214 self.timeLength.text = _model.timeLength;
215 self.videoImgView.hidden = NO; 215 self.videoImgView.hidden = NO;
216 - _timeLength.tz_left = self.videoImgView.tz_right; 216 + _timeLength.CNTZ_left = self.videoImgView.CNTZ_right;
217 _timeLength.textAlignment = NSTextAlignmentRight; 217 _timeLength.textAlignment = NSTextAlignmentRight;
218 - } else if (type == TZAssetCellTypePhotoGif && self.allowPickingGif) { 218 + } else if (type == CNTZAssetCellTypePhotoGif && self.allowPickingGif) {
219 self.bottomView.hidden = NO; 219 self.bottomView.hidden = NO;
220 self.timeLength.text = @"GIF"; 220 self.timeLength.text = @"GIF";
221 self.videoImgView.hidden = YES; 221 self.videoImgView.hidden = YES;
222 - _timeLength.tz_left = 5; 222 + _timeLength.CNTZ_left = 5;
223 _timeLength.textAlignment = NSTextAlignmentLeft; 223 _timeLength.textAlignment = NSTextAlignmentLeft;
224 } 224 }
225 } 225 }
@@ -241,8 +241,8 @@ @@ -241,8 +241,8 @@
241 } 241 }
242 self.selectImageView.image = sender.isSelected ? self.photoSelImage : self.photoDefImage; 242 self.selectImageView.image = sender.isSelected ? self.photoSelImage : self.photoDefImage;
243 if (sender.isSelected) { 243 if (sender.isSelected) {
244 - if (![TZImagePickerConfig sharedInstance].showSelectedIndex && ![TZImagePickerConfig sharedInstance].showPhotoCannotSelectLayer) {  
245 - [UIView showOscillatoryAnimationWithLayer:_selectImageView.layer type:TZOscillatoryAnimationToBigger]; 244 + if (![CNTZImagePickerConfig sharedInstance].showSelectedIndex && ![CNTZImagePickerConfig sharedInstance].showPhotoCannotSelectLayer) {
  245 + [UIView showOscillatoryAnimationWithLayer:_selectImageView.layer type:CNTZOscillatoryAnimationToBigger];
246 } 246 }
247 // 用户选中了该图片,提前获取一下大图 247 // 用户选中了该图片,提前获取一下大图
248 [self requestBigImage]; 248 [self requestBigImage];
@@ -271,7 +271,7 @@ @@ -271,7 +271,7 @@
271 } 271 }
272 272
273 __weak typeof(self) weakSelf = self; 273 __weak typeof(self) weakSelf = self;
274 - _bigImageRequestID = [[TZImageManager manager] requestImageDataForAsset:_model.asset completion:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { 274 + _bigImageRequestID = [[CNTZImageManager manager] requestImageDataForAsset:_model.asset completion:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
275 [weakSelf hideProgressView]; 275 [weakSelf hideProgressView];
276 } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) { 276 } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
277 if (weakSelf.model.isSelected) { 277 if (weakSelf.model.isSelected) {
@@ -388,9 +388,9 @@ @@ -388,9 +388,9 @@
388 return _indexLabel; 388 return _indexLabel;
389 } 389 }
390 390
391 -- (TZProgressView *)progressView { 391 +- (CNTZProgressView *)progressView {
392 if (_progressView == nil) { 392 if (_progressView == nil) {
393 - _progressView = [[TZProgressView alloc] init]; 393 + _progressView = [[CNTZProgressView alloc] init];
394 _progressView.hidden = YES; 394 _progressView.hidden = YES;
395 [self addSubview:_progressView]; 395 [self addSubview:_progressView];
396 } 396 }
@@ -401,26 +401,26 @@ @@ -401,26 +401,26 @@
401 [super layoutSubviews]; 401 [super layoutSubviews];
402 _cannotSelectLayerButton.frame = self.bounds; 402 _cannotSelectLayerButton.frame = self.bounds;
403 if (self.allowPreview) { 403 if (self.allowPreview) {
404 - _selectPhotoButton.frame = CGRectMake(self.tz_width - 44, 0, 44, 44); 404 + _selectPhotoButton.frame = CGRectMake(self.CNTZ_width - 44, 0, 44, 44);
405 } else { 405 } else {
406 _selectPhotoButton.frame = self.bounds; 406 _selectPhotoButton.frame = self.bounds;
407 } 407 }
408 - _selectImageView.frame = CGRectMake(self.tz_width - 27, 3, 24, 24); 408 + _selectImageView.frame = CGRectMake(self.CNTZ_width - 27, 3, 24, 24);
409 if (_selectImageView.image.size.width <= 27) { 409 if (_selectImageView.image.size.width <= 27) {
410 _selectImageView.contentMode = UIViewContentModeCenter; 410 _selectImageView.contentMode = UIViewContentModeCenter;
411 } else { 411 } else {
412 _selectImageView.contentMode = UIViewContentModeScaleAspectFit; 412 _selectImageView.contentMode = UIViewContentModeScaleAspectFit;
413 } 413 }
414 _indexLabel.frame = _selectImageView.frame; 414 _indexLabel.frame = _selectImageView.frame;
415 - _imageView.frame = CGRectMake(0, 0, self.tz_width, self.tz_height); 415 + _imageView.frame = CGRectMake(0, 0, self.CNTZ_width, self.CNTZ_height);
416 416
417 static CGFloat progressWH = 20; 417 static CGFloat progressWH = 20;
418 - CGFloat progressXY = (self.tz_width - progressWH) / 2; 418 + CGFloat progressXY = (self.CNTZ_width - progressWH) / 2;
419 _progressView.frame = CGRectMake(progressXY, progressXY, progressWH, progressWH); 419 _progressView.frame = CGRectMake(progressXY, progressXY, progressWH, progressWH);
420 420
421 - _bottomView.frame = CGRectMake(0, self.tz_height - 17, self.tz_width, 17); 421 + _bottomView.frame = CGRectMake(0, self.CNTZ_height - 17, self.CNTZ_width, 17);
422 _videoImgView.frame = CGRectMake(8, 0, 17, 17); 422 _videoImgView.frame = CGRectMake(8, 0, 17, 17);
423 - _timeLength.frame = CGRectMake(self.videoImgView.tz_right, 0, self.tz_width - self.videoImgView.tz_right - 5, 17); 423 + _timeLength.frame = CGRectMake(self.videoImgView.CNTZ_right, 0, self.CNTZ_width - self.videoImgView.CNTZ_right - 5, 17);
424 424
425 self.type = (NSInteger)self.model.type; 425 self.type = (NSInteger)self.model.type;
426 self.showSelectBtn = self.showSelectBtn; 426 self.showSelectBtn = self.showSelectBtn;
@@ -438,13 +438,13 @@ @@ -438,13 +438,13 @@
438 438
439 @end 439 @end
440 440
441 -@interface TZAlbumCell () 441 +@interface CNTZAlbumCell ()
442 @property (weak, nonatomic) UIImageView *posterImageView; 442 @property (weak, nonatomic) UIImageView *posterImageView;
443 @property (weak, nonatomic) UILabel *titleLabel; 443 @property (weak, nonatomic) UILabel *titleLabel;
444 @property (weak, nonatomic) UIImageView *enterImageView; 444 @property (weak, nonatomic) UIImageView *enterImageView;
445 @end 445 @end
446 446
447 -@implementation TZAlbumCell 447 +@implementation CNTZAlbumCell
448 448
449 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 449 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
450 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 450 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
@@ -452,7 +452,7 @@ @@ -452,7 +452,7 @@
452 return self; 452 return self;
453 } 453 }
454 454
455 -- (void)setModel:(TZAlbumModel *)model { 455 +- (void)setModel:(CNTZAlbumModel *)model {
456 _model = model; 456 _model = model;
457 457
458 NSMutableAttributedString *nameString = [[NSMutableAttributedString alloc] initWithString:model.name attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor blackColor]}]; 458 NSMutableAttributedString *nameString = [[NSMutableAttributedString alloc] initWithString:model.name attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor blackColor]}];
@@ -460,7 +460,7 @@ @@ -460,7 +460,7 @@
460 [nameString appendAttributedString:countString]; 460 [nameString appendAttributedString:countString];
461 self.titleLabel.attributedText = nameString; 461 self.titleLabel.attributedText = nameString;
462 __weak typeof(self) weakSelf = self; 462 __weak typeof(self) weakSelf = self;
463 - [[TZImageManager manager] getPostImageWithAlbumModel:model completion:^(UIImage *postImage) { 463 + [[CNTZImageManager manager] getPostImageWithAlbumModel:model completion:^(UIImage *postImage) {
464 weakSelf.posterImageView.image = postImage; 464 weakSelf.posterImageView.image = postImage;
465 }]; 465 }];
466 if (model.selectedCount) { 466 if (model.selectedCount) {
@@ -482,10 +482,10 @@ @@ -482,10 +482,10 @@
482 /// For fitting iOS6 482 /// For fitting iOS6
483 - (void)layoutSubviews { 483 - (void)layoutSubviews {
484 if (iOS7Later) [super layoutSubviews]; 484 if (iOS7Later) [super layoutSubviews];
485 - _selectedCountButton.frame = CGRectMake(self.tz_width - 24 - 30, 23, 24, 24);  
486 - self.enterImageView.frame = CGRectMake(self.tz_width - 20, 30, 6, 12); 485 + _selectedCountButton.frame = CGRectMake(self.CNTZ_width - 24 - 30, 23, 24, 24);
  486 + self.enterImageView.frame = CGRectMake(self.CNTZ_width - 20, 30, 6, 12);
487 NSInteger titleHeight = ceil(self.titleLabel.font.lineHeight); 487 NSInteger titleHeight = ceil(self.titleLabel.font.lineHeight);
488 - self.titleLabel.frame = CGRectMake(80, (self.tz_height - titleHeight) / 2, self.tz_width - 80 - 50, titleHeight); 488 + self.titleLabel.frame = CGRectMake(80, (self.CNTZ_height - titleHeight) / 2, self.CNTZ_width - 80 - 50, titleHeight);
489 self.posterImageView.frame = CGRectMake(0, 0, 70, 70); 489 self.posterImageView.frame = CGRectMake(0, 0, 70, 70);
490 490
491 if (self.albumCellDidLayoutSubviewsBlock) { 491 if (self.albumCellDidLayoutSubviewsBlock) {
@@ -550,7 +550,7 @@ @@ -550,7 +550,7 @@
550 550
551 551
552 552
553 -@implementation TZAssetCameraCell 553 +@implementation CNTZAssetCameraCell
554 554
555 - (instancetype)initWithFrame:(CGRect)frame { 555 - (instancetype)initWithFrame:(CGRect)frame {
556 self = [super initWithFrame:frame]; 556 self = [super initWithFrame:frame];
CNLiveImagePickerController/Classes/TZAssetModel.h renamed to CNLiveImagePickerController/Classes/CNTZAssetModel.h
1 // 1 //
2 -// TZAssetModel.h  
3 -// TZImagePickerController 2 +// CNTZAssetModel.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
@@ -10,19 +10,19 @@ @@ -10,19 +10,19 @@
10 #import <UIKit/UIKit.h> 10 #import <UIKit/UIKit.h>
11 11
12 typedef enum : NSUInteger { 12 typedef enum : NSUInteger {
13 - TZAssetModelMediaTypePhoto = 0,  
14 - TZAssetModelMediaTypeLivePhoto,  
15 - TZAssetModelMediaTypePhotoGif,  
16 - TZAssetModelMediaTypeVideo,  
17 - TZAssetModelMediaTypeAudio  
18 -} TZAssetModelMediaType; 13 + CNTZAssetModelMediaTypePhoto = 0,
  14 + CNTZAssetModelMediaTypeLivePhoto,
  15 + CNTZAssetModelMediaTypePhotoGif,
  16 + CNTZAssetModelMediaTypeVideo,
  17 + CNTZAssetModelMediaTypeAudio
  18 +} CNTZAssetModelMediaType;
19 19
20 @class PHAsset; 20 @class PHAsset;
21 -@interface TZAssetModel : NSObject 21 +@interface CNTZAssetModel : NSObject
22 22
23 @property (nonatomic, strong) id asset; ///< PHAsset or ALAsset 23 @property (nonatomic, strong) id asset; ///< PHAsset or ALAsset
24 @property (nonatomic, assign) BOOL isSelected; ///< The select status of a photo, default is No 24 @property (nonatomic, assign) BOOL isSelected; ///< The select status of a photo, default is No
25 -@property (nonatomic, assign) TZAssetModelMediaType type; // 类型 25 +@property (nonatomic, assign) CNTZAssetModelMediaType type; // 类型
26 @property (assign, nonatomic) BOOL needOscillatoryAnimation; 26 @property (assign, nonatomic) BOOL needOscillatoryAnimation;
27 @property (nonatomic, copy) NSString *timeLength; 27 @property (nonatomic, copy) NSString *timeLength;
28 @property (strong, nonatomic) UIImage *cachedImage; 28 @property (strong, nonatomic) UIImage *cachedImage;
@@ -35,14 +35,14 @@ typedef enum : NSUInteger { @@ -35,14 +35,14 @@ typedef enum : NSUInteger {
35 35
36 /// Init a photo dataModel With a asset 36 /// Init a photo dataModel With a asset
37 /// 用一个PHAsset/ALAsset实例,初始化一个照片模型 37 /// 用一个PHAsset/ALAsset实例,初始化一个照片模型
38 -+ (instancetype)modelWithAsset:(id)asset type:(TZAssetModelMediaType)type;  
39 -+ (instancetype)modelWithAsset:(id)asset type:(TZAssetModelMediaType)type timeLength:(NSString *)timeLength; 38 ++ (instancetype)modelWithAsset:(id)asset type:(CNTZAssetModelMediaType)type;
  39 ++ (instancetype)modelWithAsset:(id)asset type:(CNTZAssetModelMediaType)type timeLength:(NSString *)timeLength;
40 40
41 @end 41 @end
42 42
43 43
44 @class PHFetchResult; 44 @class PHFetchResult;
45 -@interface TZAlbumModel : NSObject 45 +@interface CNTZAlbumModel : NSObject
46 46
47 @property (nonatomic, strong) NSString *name; ///< The album name 47 @property (nonatomic, strong) NSString *name; ///< The album name
48 @property (nonatomic, assign) NSInteger count; ///< Count of photos the album contain 48 @property (nonatomic, assign) NSInteger count; ///< Count of photos the album contain
CNLiveImagePickerController/Classes/TZAssetModel.m renamed to CNLiveImagePickerController/Classes/CNTZAssetModel.m
1 // 1 //
2 -// TZAssetModel.m  
3 -// TZImagePickerController 2 +// CNTZAssetModel.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZAssetModel.h"  
10 -#import "TZImageManager.h" 9 +#import "CNTZAssetModel.h"
  10 +#import "CNTZImageManager.h"
11 11
12 -@implementation TZAssetModel 12 +@implementation CNTZAssetModel
13 13
14 -+ (instancetype)modelWithAsset:(id)asset type:(TZAssetModelMediaType)type{  
15 - TZAssetModel *model = [[TZAssetModel alloc] init]; 14 ++ (instancetype)modelWithAsset:(id)asset type:(CNTZAssetModelMediaType)type{
  15 + CNTZAssetModel *model = [[CNTZAssetModel alloc] init];
16 model.asset = asset; 16 model.asset = asset;
17 model.isSelected = NO; 17 model.isSelected = NO;
18 model.type = type; 18 model.type = type;
19 return model; 19 return model;
20 } 20 }
21 21
22 -+ (instancetype)modelWithAsset:(id)asset type:(TZAssetModelMediaType)type timeLength:(NSString *)timeLength {  
23 - TZAssetModel *model = [self modelWithAsset:asset type:type]; 22 ++ (instancetype)modelWithAsset:(id)asset type:(CNTZAssetModelMediaType)type timeLength:(NSString *)timeLength {
  23 + CNTZAssetModel *model = [self modelWithAsset:asset type:type];
24 model.timeLength = timeLength; 24 model.timeLength = timeLength;
25 return model; 25 return model;
26 } 26 }
@@ -29,13 +29,13 @@ @@ -29,13 +29,13 @@
29 29
30 30
31 31
32 -@implementation TZAlbumModel 32 +@implementation CNTZAlbumModel
33 33
34 - (void)setResult:(id)result needFetchAssets:(BOOL)needFetchAssets { 34 - (void)setResult:(id)result needFetchAssets:(BOOL)needFetchAssets {
35 _result = result; 35 _result = result;
36 if (needFetchAssets) { 36 if (needFetchAssets) {
37 __weak typeof(self) weakSelf = self; 37 __weak typeof(self) weakSelf = self;
38 - [[TZImageManager manager] getAssetsFromFetchResult:result completion:^(NSArray<TZAssetModel *> *models) { 38 + [[CNTZImageManager manager] getAssetsFromFetchResult:result completion:^(NSArray<CNTZAssetModel *> *models) {
39 self->_models = models; 39 self->_models = models;
40 if (self->_selectedModels) { 40 if (self->_selectedModels) {
41 [weakSelf checkSelectedModels]; 41 [weakSelf checkSelectedModels];
@@ -54,11 +54,11 @@ @@ -54,11 +54,11 @@
54 - (void)checkSelectedModels { 54 - (void)checkSelectedModels {
55 self.selectedCount = 0; 55 self.selectedCount = 0;
56 NSMutableArray *selectedAssets = [NSMutableArray array]; 56 NSMutableArray *selectedAssets = [NSMutableArray array];
57 - for (TZAssetModel *model in _selectedModels) { 57 + for (CNTZAssetModel *model in _selectedModels) {
58 [selectedAssets addObject:model.asset]; 58 [selectedAssets addObject:model.asset];
59 } 59 }
60 - for (TZAssetModel *model in _models) {  
61 - if ([[TZImageManager manager] isAssetsArray:selectedAssets containAsset:model.asset]) { 60 + for (CNTZAssetModel *model in _models) {
  61 + if ([[CNTZImageManager manager] isAssetsArray:selectedAssets containAsset:model.asset]) {
62 self.selectedCount ++; 62 self.selectedCount ++;
63 } 63 }
64 } 64 }
CNLiveImagePickerController/Classes/TZGifPhotoPreviewController.h renamed to CNLiveImagePickerController/Classes/CNTZGifPhotoPreviewController.h
1 // 1 //
2 -// TZGifPhotoPreviewController.h  
3 -// TZImagePickerController 2 +// CNTZGifPhotoPreviewController.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by ttouch on 2016/12/13. 5 // Created by ttouch on 2016/12/13.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
@@ -8,9 +8,9 @@ @@ -8,9 +8,9 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@class TZAssetModel;  
12 -@interface TZGifPhotoPreviewController : UIViewController 11 +@class CNTZAssetModel;
  12 +@interface CNTZGifPhotoPreviewController : UIViewController
13 13
14 -@property (nonatomic, strong) TZAssetModel *model; 14 +@property (nonatomic, strong) CNTZAssetModel *model;
15 15
16 @end 16 @end
CNLiveImagePickerController/Classes/TZGifPhotoPreviewController.m renamed to CNLiveImagePickerController/Classes/CNTZGifPhotoPreviewController.m
  1 +
1 // 2 //
2 -// TZGifPhotoPreviewController.m  
3 -// TZImagePickerController 3 +// CNTZGifPhotoPreviewController.m
  4 +// CNTZImagePickerController
4 // 5 //
5 // Created by ttouch on 2016/12/13. 6 // Created by ttouch on 2016/12/13.
6 // Copyright © 2016年 谭真. All rights reserved. 7 // Copyright © 2016年 谭真. All rights reserved.
7 // 8 //
8 9
9 -#import "TZGifPhotoPreviewController.h"  
10 -#import "TZImagePickerController.h"  
11 -#import "TZAssetModel.h"  
12 -#import "UIView+TZLayout.h"  
13 -#import "TZPhotoPreviewCell.h"  
14 -#import "TZImageManager.h" 10 +#import "CNTZGifPhotoPreviewController.h"
  11 +#import "CNTZImagePickerController.h"
  12 +#import "CNTZAssetModel.h"
  13 +#import "UIView+CNTZLayout.h"
  14 +#import "CNTZPhotoPreviewCell.h"
  15 +#import "CNTZImageManager.h"
15 16
16 #pragma clang diagnostic push 17 #pragma clang diagnostic push
17 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 18 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
18 19
19 -@interface TZGifPhotoPreviewController () { 20 +@interface CNTZGifPhotoPreviewController () {
20 UIView *_toolBar; 21 UIView *_toolBar;
21 UIButton *_doneButton; 22 UIButton *_doneButton;
22 UIProgressView *_progress; 23 UIProgressView *_progress;
23 24
24 - TZPhotoPreviewView *_previewView; 25 + CNTZPhotoPreviewView *_previewView;
25 26
26 UIStatusBarStyle _originStatusBarStyle; 27 UIStatusBarStyle _originStatusBarStyle;
27 } 28 }
28 @end 29 @end
29 30
30 -@implementation TZGifPhotoPreviewController 31 +@implementation CNTZGifPhotoPreviewController
31 32
32 - (void)viewDidLoad { 33 - (void)viewDidLoad {
33 [super viewDidLoad]; 34 [super viewDidLoad];
34 self.view.backgroundColor = [UIColor blackColor]; 35 self.view.backgroundColor = [UIColor blackColor];
35 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
36 - if (tzImagePickerVc) {  
37 - self.navigationItem.title = [NSString stringWithFormat:@"GIF %@",tzImagePickerVc.previewBtnTitleStr]; 36 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  37 + if (CNTZImagePickerVc) {
  38 + self.navigationItem.title = [NSString stringWithFormat:@"GIF %@",CNTZImagePickerVc.previewBtnTitleStr];
38 } 39 }
39 [self configPreviewView]; 40 [self configPreviewView];
40 [self configBottomToolBar]; 41 [self configBottomToolBar];
@@ -52,7 +53,7 @@ @@ -52,7 +53,7 @@
52 } 53 }
53 54
54 - (void)configPreviewView { 55 - (void)configPreviewView {
55 - _previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero]; 56 + _previewView = [[CNTZPhotoPreviewView alloc] initWithFrame:CGRectZero];
56 _previewView.model = self.model; 57 _previewView.model = self.model;
57 __weak typeof(self) weakSelf = self; 58 __weak typeof(self) weakSelf = self;
58 [_previewView setSingleTapGestureBlock:^{ 59 [_previewView setSingleTapGestureBlock:^{
@@ -70,12 +71,12 @@ @@ -70,12 +71,12 @@
70 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; 71 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
71 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16]; 72 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
72 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside]; 73 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside];
73 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
74 - if (tzImagePickerVc) {  
75 - [_doneButton setTitle:tzImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];  
76 - [_doneButton setTitleColor:tzImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal]; 74 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  75 + if (CNTZImagePickerVc) {
  76 + [_doneButton setTitle:CNTZImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];
  77 + [_doneButton setTitleColor:CNTZImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal];
77 } else { 78 } else {
78 - [_doneButton setTitle:[NSBundle tz_localizedStringForKey:@"Done"] forState:UIControlStateNormal]; 79 + [_doneButton setTitle:[NSBundle CNTZ_localizedStringForKey:@"Done"] forState:UIControlStateNormal];
79 [_doneButton setTitleColor:[UIColor colorWithRed:(83/255.0) green:(179/255.0) blue:(17/255.0) alpha:1.0] forState:UIControlStateNormal]; 80 [_doneButton setTitleColor:[UIColor colorWithRed:(83/255.0) green:(179/255.0) blue:(17/255.0) alpha:1.0] forState:UIControlStateNormal];
80 } 81 }
81 [_toolBar addSubview:_doneButton]; 82 [_toolBar addSubview:_doneButton];
@@ -84,15 +85,15 @@ @@ -84,15 +85,15 @@
84 byteLabel.textColor = [UIColor whiteColor]; 85 byteLabel.textColor = [UIColor whiteColor];
85 byteLabel.font = [UIFont systemFontOfSize:13]; 86 byteLabel.font = [UIFont systemFontOfSize:13];
86 byteLabel.frame = CGRectMake(10, 0, 100, 44); 87 byteLabel.frame = CGRectMake(10, 0, 100, 44);
87 - [[TZImageManager manager] getPhotosBytesWithArray:@[_model] completion:^(NSString *totalBytes) { 88 + [[CNTZImageManager manager] getPhotosBytesWithArray:@[_model] completion:^(NSString *totalBytes) {
88 byteLabel.text = totalBytes; 89 byteLabel.text = totalBytes;
89 }]; 90 }];
90 [_toolBar addSubview:byteLabel]; 91 [_toolBar addSubview:byteLabel];
91 92
92 [self.view addSubview:_toolBar]; 93 [self.view addSubview:_toolBar];
93 94
94 - if (tzImagePickerVc.gifPreviewPageUIConfigBlock) {  
95 - tzImagePickerVc.gifPreviewPageUIConfigBlock(_toolBar, _doneButton); 95 + if (CNTZImagePickerVc.gifPreviewPageUIConfigBlock) {
  96 + CNTZImagePickerVc.gifPreviewPageUIConfigBlock(_toolBar, _doneButton);
96 } 97 }
97 } 98 }
98 99
@@ -103,13 +104,13 @@ @@ -103,13 +104,13 @@
103 104
104 _previewView.frame = self.view.bounds; 105 _previewView.frame = self.view.bounds;
105 _previewView.scrollView.frame = self.view.bounds; 106 _previewView.scrollView.frame = self.view.bounds;
106 - CGFloat toolBarHeight = [TZCommonTools tz_isIPhoneX] ? 44 + (83 - 49) : 44;  
107 - _toolBar.frame = CGRectMake(0, self.view.tz_height - toolBarHeight, self.view.tz_width, toolBarHeight);  
108 - _doneButton.frame = CGRectMake(self.view.tz_width - 44 - 12, 0, 44, 44); 107 + CGFloat toolBarHeight = [CNTZCommonTools CNTZ_isIPhoneX] ? 44 + (83 - 49) : 44;
  108 + _toolBar.frame = CGRectMake(0, self.view.CNTZ_height - toolBarHeight, self.view.CNTZ_width, toolBarHeight);
  109 + _doneButton.frame = CGRectMake(self.view.CNTZ_width - 44 - 12, 0, 44, 44);
109 110
110 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
111 - if (tzImagePickerVc.gifPreviewPageDidLayoutSubviewsBlock) {  
112 - tzImagePickerVc.gifPreviewPageDidLayoutSubviewsBlock(_toolBar, _doneButton); 111 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  112 + if (CNTZImagePickerVc.gifPreviewPageDidLayoutSubviewsBlock) {
  113 + CNTZImagePickerVc.gifPreviewPageDidLayoutSubviewsBlock(_toolBar, _doneButton);
113 } 114 }
114 } 115 }
115 116
@@ -118,11 +119,11 @@ @@ -118,11 +119,11 @@
118 - (void)signleTapAction { 119 - (void)signleTapAction {
119 _toolBar.hidden = !_toolBar.isHidden; 120 _toolBar.hidden = !_toolBar.isHidden;
120 [self.navigationController setNavigationBarHidden:_toolBar.isHidden]; 121 [self.navigationController setNavigationBarHidden:_toolBar.isHidden];
121 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 122 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
122 if (iOS7Later) { 123 if (iOS7Later) {
123 if (_toolBar.isHidden) { 124 if (_toolBar.isHidden) {
124 [UIApplication sharedApplication].statusBarHidden = YES; 125 [UIApplication sharedApplication].statusBarHidden = YES;
125 - } else if (tzImagePickerVc.needShowStatusBar) { 126 + } else if (CNTZImagePickerVc.needShowStatusBar) {
126 [UIApplication sharedApplication].statusBarHidden = NO; 127 [UIApplication sharedApplication].statusBarHidden = NO;
127 } 128 }
128 } 129 }
@@ -132,7 +133,7 @@ @@ -132,7 +133,7 @@
132 #pragma mark - TODO: 导出 133 #pragma mark - TODO: 导出
133 134
134 if (self.navigationController) { 135 if (self.navigationController) {
135 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 136 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
136 if (imagePickerVc.autoDismiss) { 137 if (imagePickerVc.autoDismiss) {
137 [self.navigationController dismissViewControllerAnimated:YES completion:^{ 138 [self.navigationController dismissViewControllerAnimated:YES completion:^{
138 [self callDelegateMethod]; 139 [self callDelegateMethod];
@@ -148,7 +149,7 @@ @@ -148,7 +149,7 @@
148 } 149 }
149 150
150 - (void)callDelegateMethod { 151 - (void)callDelegateMethod {
151 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 152 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
152 UIImage *animatedImage = _previewView.imageView.image; 153 UIImage *animatedImage = _previewView.imageView.image;
153 if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingGifImage:sourceAssets:)]) { 154 if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingGifImage:sourceAssets:)]) {
154 [imagePickerVc.pickerDelegate imagePickerController:imagePickerVc didFinishPickingGifImage:animatedImage sourceAssets:_model.asset]; 155 [imagePickerVc.pickerDelegate imagePickerController:imagePickerVc didFinishPickingGifImage:animatedImage sourceAssets:_model.asset];
CNLiveImagePickerController/Classes/TZImageCropManager.h renamed to CNLiveImagePickerController/Classes/CNTZImageCropManager.h
1 // 1 //
2 -// TZImageCropManager.h  
3 -// TZImagePickerController 2 +// CNTZImageCropManager.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 2016/12/5. 5 // Created by 谭真 on 2016/12/5.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import <UIKit/UIKit.h> 10 #import <UIKit/UIKit.h>
11 11
12 -@interface TZImageCropManager : NSObject 12 +@interface CNTZImageCropManager : NSObject
13 13
14 /// 裁剪框背景的处理 14 /// 裁剪框背景的处理
15 + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop; 15 + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop;
@@ -32,8 +32,8 @@ @@ -32,8 +32,8 @@
32 32
33 /// 该分类的代码来自SDWebImage:https://github.com/rs/SDWebImage 33 /// 该分类的代码来自SDWebImage:https://github.com/rs/SDWebImage
34 /// 为了防止冲突,我将分类名字和方法名字做了修改 34 /// 为了防止冲突,我将分类名字和方法名字做了修改
35 -@interface UIImage (TZGif) 35 +@interface UIImage (CNTZGif)
36 36
37 -+ (UIImage *)sd_tz_animatedGIFWithData:(NSData *)data; 37 ++ (UIImage *)sd_CNTZ_animatedGIFWithData:(NSData *)data;
38 38
39 @end 39 @end
CNLiveImagePickerController/Classes/TZImageCropManager.m renamed to CNLiveImagePickerController/Classes/CNTZImageCropManager.m
1 // 1 //
2 -// TZImageCropManager.m  
3 -// TZImagePickerController 2 +// CNTZImageCropManager.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 2016/12/5. 5 // Created by 谭真 on 2016/12/5.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZImageCropManager.h"  
10 -#import "UIView+TZLayout.h" 9 +#import "CNTZImageCropManager.h"
  10 +#import "UIView+CNTZLayout.h"
11 #import <ImageIO/ImageIO.h> 11 #import <ImageIO/ImageIO.h>
12 -#import "TZImageManager.h"  
13 -#import "TZImagePickerController.h" 12 +#import "CNTZImageManager.h"
  13 +#import "CNTZImagePickerController.h"
14 14
15 -@implementation TZImageCropManager 15 +@implementation CNTZImageCropManager
16 16
17 /// 裁剪框背景的处理 17 /// 裁剪框背景的处理
18 + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop { 18 + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop {
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 // 平移的处理 36 // 平移的处理
37 CGRect imageViewRect = [imageView convertRect:imageView.bounds toView:containerView]; 37 CGRect imageViewRect = [imageView convertRect:imageView.bounds toView:containerView];
38 CGPoint point = CGPointMake(imageViewRect.origin.x + imageViewRect.size.width / 2, imageViewRect.origin.y + imageViewRect.size.height / 2); 38 CGPoint point = CGPointMake(imageViewRect.origin.x + imageViewRect.size.width / 2, imageViewRect.origin.y + imageViewRect.size.height / 2);
39 - CGFloat xMargin = containerView.tz_width - CGRectGetMaxX(rect) - rect.origin.x; 39 + CGFloat xMargin = containerView.CNTZ_width - CGRectGetMaxX(rect) - rect.origin.x;
40 CGPoint zeroPoint = CGPointMake((CGRectGetWidth(containerView.frame) - xMargin) / 2, containerView.center.y); 40 CGPoint zeroPoint = CGPointMake((CGRectGetWidth(containerView.frame) - xMargin) / 2, containerView.center.y);
41 CGPoint translation = CGPointMake(point.x - zeroPoint.x, point.y - zeroPoint.y); 41 CGPoint translation = CGPointMake(point.x - zeroPoint.x, point.y - zeroPoint.y);
42 transform = CGAffineTransformTranslate(transform, translation.x, translation.y); 42 transform = CGAffineTransformTranslate(transform, translation.x, translation.y);
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 cropSize:rect.size 50 cropSize:rect.size
51 imageViewSize:imageView.frame.size]; 51 imageViewSize:imageView.frame.size];
52 UIImage *cropedImage = [UIImage imageWithCGImage:imageRef]; 52 UIImage *cropedImage = [UIImage imageWithCGImage:imageRef];
53 - cropedImage = [[TZImageManager manager] fixOrientation:cropedImage]; 53 + cropedImage = [[CNTZImageManager manager] fixOrientation:cropedImage];
54 CGImageRelease(imageRef); 54 CGImageRelease(imageRef);
55 return cropedImage; 55 return cropedImage;
56 } 56 }
@@ -115,9 +115,9 @@ @@ -115,9 +115,9 @@
115 @end 115 @end
116 116
117 117
118 -@implementation UIImage (TZGif) 118 +@implementation UIImage (CNTZGif)
119 119
120 -+ (UIImage *)sd_tz_animatedGIFWithData:(NSData *)data { 120 ++ (UIImage *)sd_CNTZ_animatedGIFWithData:(NSData *)data {
121 if (!data) { 121 if (!data) {
122 return nil; 122 return nil;
123 } 123 }
@@ -133,7 +133,7 @@ @@ -133,7 +133,7 @@
133 } 133 }
134 else { 134 else {
135 // images数组过大时内存会飙升,在这里限制下最大count 135 // images数组过大时内存会飙升,在这里限制下最大count
136 - NSInteger maxCount = [TZImagePickerConfig sharedInstance].gifPreviewMaxImagesCount ?: 200; 136 + NSInteger maxCount = [CNTZImagePickerConfig sharedInstance].gifPreviewMaxImagesCount ?: 200;
137 NSInteger interval = MAX((count + maxCount / 2) / maxCount, 1); 137 NSInteger interval = MAX((count + maxCount / 2) / maxCount, 1);
138 138
139 NSMutableArray *images = [NSMutableArray array]; 139 NSMutableArray *images = [NSMutableArray array];
CNLiveImagePickerController/Classes/TZImageManager.h renamed to CNLiveImagePickerController/Classes/CNTZImageManager.h
1 // 1 //
2 -// TZImageManager.h  
3 -// TZImagePickerController 2 +// CNTZImageManager.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 16/1/4. 5 // Created by 谭真 on 16/1/4.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
@@ -10,18 +10,18 @@ @@ -10,18 +10,18 @@
10 #import <UIKit/UIKit.h> 10 #import <UIKit/UIKit.h>
11 #import <AVFoundation/AVFoundation.h> 11 #import <AVFoundation/AVFoundation.h>
12 #import <Photos/Photos.h> 12 #import <Photos/Photos.h>
13 -#import "TZAssetModel.h" 13 +#import "CNTZAssetModel.h"
14 14
15 -@class TZAlbumModel,TZAssetModel;  
16 -@protocol TZImagePickerControllerDelegate;  
17 -@interface TZImageManager : NSObject 15 +@class CNTZAlbumModel,CNTZAssetModel;
  16 +@protocol CNTZImagePickerControllerDelegate;
  17 +@interface CNTZImageManager : NSObject
18 18
19 @property (nonatomic, strong) PHCachingImageManager *cachingImageManager; 19 @property (nonatomic, strong) PHCachingImageManager *cachingImageManager;
20 20
21 + (instancetype)manager NS_SWIFT_NAME(default()); 21 + (instancetype)manager NS_SWIFT_NAME(default());
22 + (void)deallocManager; 22 + (void)deallocManager;
23 23
24 -@property (weak, nonatomic) id<TZImagePickerControllerDelegate> pickerDelegate; 24 +@property (weak, nonatomic) id<CNTZImagePickerControllerDelegate> pickerDelegate;
25 25
26 #pragma mark - 添加: 原有逻辑-会话id(LXG) 26 #pragma mark - 添加: 原有逻辑-会话id(LXG)
27 //zl__会话Id用于视频导出路径 27 //zl__会话Id用于视频导出路径
@@ -34,8 +34,8 @@ @@ -34,8 +34,8 @@
34 /// The pixel width of output image, Default is 828px / 导出图片的宽度,默认828像素宽 34 /// The pixel width of output image, Default is 828px / 导出图片的宽度,默认828像素宽
35 @property (nonatomic, assign) CGFloat photoWidth; 35 @property (nonatomic, assign) CGFloat photoWidth;
36 36
37 -/// Default is 4, Use in photos collectionView in TZPhotoPickerController  
38 -/// 默认4列, TZPhotoPickerController中的照片collectionView 37 +/// Default is 4, Use in photos collectionView in CNTZPhotoPickerController
  38 +/// 默认4列, CNTZPhotoPickerController中的照片collectionView
39 @property (nonatomic, assign) NSInteger columnNumber; 39 @property (nonatomic, assign) NSInteger columnNumber;
40 40
41 /// Sort photos ascending by modificationDate,Default is YES 41 /// Sort photos ascending by modificationDate,Default is YES
@@ -54,16 +54,16 @@ @@ -54,16 +54,16 @@
54 - (void)requestAuthorizationWithCompletion:(void (^)(void))completion; 54 - (void)requestAuthorizationWithCompletion:(void (^)(void))completion;
55 55
56 /// Get Album 获得相册/相册数组 56 /// Get Album 获得相册/相册数组
57 -- (void)getCameraRollAlbum:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(TZAlbumModel *model))completion;  
58 -- (void)getAllAlbums:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(NSArray<TZAlbumModel *> *models))completion; 57 +- (void)getCameraRollAlbum:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(CNTZAlbumModel *model))completion;
  58 +- (void)getAllAlbums:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(NSArray<CNTZAlbumModel *> *models))completion;
59 59
60 /// Get Assets 获得Asset数组 60 /// Get Assets 获得Asset数组
61 -- (void)getAssetsFromFetchResult:(id)result completion:(void (^)(NSArray<TZAssetModel *> *models))completion;  
62 -- (void)getAssetsFromFetchResult:(id)result allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(NSArray<TZAssetModel *> *models))completion;  
63 -- (void)getAssetFromFetchResult:(id)result atIndex:(NSInteger)index allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(TZAssetModel *model))completion; 61 +- (void)getAssetsFromFetchResult:(id)result completion:(void (^)(NSArray<CNTZAssetModel *> *models))completion;
  62 +- (void)getAssetsFromFetchResult:(id)result allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(NSArray<CNTZAssetModel *> *models))completion;
  63 +- (void)getAssetFromFetchResult:(id)result atIndex:(NSInteger)index allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(CNTZAssetModel *model))completion;
64 64
65 /// Get photo 获得照片 65 /// Get photo 获得照片
66 -- (void)getPostImageWithAlbumModel:(TZAlbumModel *)model completion:(void (^)(UIImage *postImage))completion; 66 +- (void)getPostImageWithAlbumModel:(CNTZAlbumModel *)model completion:(void (^)(UIImage *postImage))completion;
67 67
68 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion; 68 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion;
69 - (int32_t)getPhotoWithAsset:(id)asset photoWidth:(CGFloat)photoWidth completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion; 69 - (int32_t)getPhotoWithAsset:(id)asset photoWidth:(CGFloat)photoWidth completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion;
@@ -114,7 +114,7 @@ @@ -114,7 +114,7 @@
114 - (UIImage *)fixOrientation:(UIImage *)aImage; 114 - (UIImage *)fixOrientation:(UIImage *)aImage;
115 115
116 /// 获取asset的资源类型 116 /// 获取asset的资源类型
117 -- (TZAssetModelMediaType)getAssetType:(id)asset; 117 +- (CNTZAssetModelMediaType)getAssetType:(id)asset;
118 /// 缩放图片至新尺寸 118 /// 缩放图片至新尺寸
119 - (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size; 119 - (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size;
120 120
@@ -123,6 +123,6 @@ @@ -123,6 +123,6 @@
123 123
124 @end 124 @end
125 125
126 -//@interface TZSortDescriptor : NSSortDescriptor 126 +//@interface CNTZSortDescriptor : NSSortDescriptor
127 // 127 //
128 //@end 128 //@end
CNLiveImagePickerController/Classes/TZImageManager.m renamed to CNLiveImagePickerController/Classes/CNTZImageManager.m
1 // 1 //
2 -// TZImageManager.m  
3 -// TZImagePickerController 2 +// CNTZImageManager.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 16/1/4. 5 // Created by 谭真 on 16/1/4.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZImageManager.h" 9 +#import "CNTZImageManager.h"
10 #import <AssetsLibrary/AssetsLibrary.h> 10 #import <AssetsLibrary/AssetsLibrary.h>
11 -#import "TZAssetModel.h"  
12 -#import "TZImagePickerController.h" 11 +#import "CNTZAssetModel.h"
  12 +#import "CNTZImagePickerController.h"
13 #import <CNLiveBusinessTools/CNLiveBusinessTools.h> 13 #import <CNLiveBusinessTools/CNLiveBusinessTools.h>
14 #import <CNLiveUserManagement/CNUserInfoModel.h> 14 #import <CNLiveUserManagement/CNUserInfoModel.h>
15 #import <CNLiveUserManagement/CNUserInfoManager.h> 15 #import <CNLiveUserManagement/CNUserInfoManager.h>
16 16
17 -@interface TZImageManager () 17 +@interface CNTZImageManager ()
18 #pragma clang diagnostic push 18 #pragma clang diagnostic push
19 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 19 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
20 @property (nonatomic, strong) ALAssetsLibrary *assetLibrary; 20 @property (nonatomic, strong) ALAssetsLibrary *assetLibrary;
21 @end 21 @end
22 22
23 -@implementation TZImageManager 23 +@implementation CNTZImageManager
24 24
25 CGSize AssetGridThumbnailSize; 25 CGSize AssetGridThumbnailSize;
26 -CGFloat TZScreenWidth;  
27 -CGFloat TZScreenScale; 26 +CGFloat CNTZScreenWidth;
  27 +CGFloat CNTZScreenScale;
28 28
29 -static TZImageManager *manager; 29 +static CNTZImageManager *manager;
30 static dispatch_once_t onceToken; 30 static dispatch_once_t onceToken;
31 31
32 + (instancetype)manager { 32 + (instancetype)manager {
@@ -37,7 +37,7 @@ static dispatch_once_t onceToken; @@ -37,7 +37,7 @@ static dispatch_once_t onceToken;
37 // manager.cachingImageManager.allowsCachingHighQualityImages = YES; 37 // manager.cachingImageManager.allowsCachingHighQualityImages = YES;
38 } 38 }
39 39
40 - [manager configTZScreenWidth]; 40 + [manager configCNTZScreenWidth];
41 }); 41 });
42 return manager; 42 return manager;
43 } 43 }
@@ -49,24 +49,24 @@ static dispatch_once_t onceToken; @@ -49,24 +49,24 @@ static dispatch_once_t onceToken;
49 49
50 - (void)setPhotoWidth:(CGFloat)photoWidth { 50 - (void)setPhotoWidth:(CGFloat)photoWidth {
51 _photoWidth = photoWidth; 51 _photoWidth = photoWidth;
52 - TZScreenWidth = photoWidth / 2; 52 + CNTZScreenWidth = photoWidth / 2;
53 } 53 }
54 54
55 - (void)setColumnNumber:(NSInteger)columnNumber { 55 - (void)setColumnNumber:(NSInteger)columnNumber {
56 - [self configTZScreenWidth]; 56 + [self configCNTZScreenWidth];
57 57
58 _columnNumber = columnNumber; 58 _columnNumber = columnNumber;
59 CGFloat margin = 4; 59 CGFloat margin = 4;
60 - CGFloat itemWH = (TZScreenWidth - 2 * margin - 4) / columnNumber - margin;  
61 - AssetGridThumbnailSize = CGSizeMake(itemWH * TZScreenScale, itemWH * TZScreenScale); 60 + CGFloat itemWH = (CNTZScreenWidth - 2 * margin - 4) / columnNumber - margin;
  61 + AssetGridThumbnailSize = CGSizeMake(itemWH * CNTZScreenScale, itemWH * CNTZScreenScale);
62 } 62 }
63 63
64 -- (void)configTZScreenWidth {  
65 - TZScreenWidth = [UIScreen mainScreen].bounds.size.width; 64 +- (void)configCNTZScreenWidth {
  65 + CNTZScreenWidth = [UIScreen mainScreen].bounds.size.width;
66 // 测试发现,如果scale在plus真机上取到3.0,内存会增大特别多。故这里写死成2.0 66 // 测试发现,如果scale在plus真机上取到3.0,内存会增大特别多。故这里写死成2.0
67 - TZScreenScale = 2.0;  
68 - if (TZScreenWidth > 700) {  
69 - TZScreenScale = 1.5; 67 + CNTZScreenScale = 2.0;
  68 + if (CNTZScreenWidth > 700) {
  69 + CNTZScreenScale = 1.5;
70 } 70 }
71 } 71 }
72 72
@@ -124,8 +124,8 @@ static dispatch_once_t onceToken; @@ -124,8 +124,8 @@ static dispatch_once_t onceToken;
124 #pragma mark - Get Album 124 #pragma mark - Get Album
125 125
126 /// Get Album 获得相册/相册数组 126 /// Get Album 获得相册/相册数组
127 -- (void)getCameraRollAlbum:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(TZAlbumModel *model))completion {  
128 - __block TZAlbumModel *model; 127 +- (void)getCameraRollAlbum:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(CNTZAlbumModel *model))completion {
  128 + __block CNTZAlbumModel *model;
129 if (iOS8Later) { 129 if (iOS8Later) {
130 PHFetchOptions *option = [[PHFetchOptions alloc] init]; 130 PHFetchOptions *option = [[PHFetchOptions alloc] init];
131 if (!allowPickingVideo) option.predicate = [NSPredicate predicateWithFormat:@"mediaType == %ld", PHAssetMediaTypeImage]; 131 if (!allowPickingVideo) option.predicate = [NSPredicate predicateWithFormat:@"mediaType == %ld", PHAssetMediaTypeImage];
@@ -162,7 +162,7 @@ static dispatch_once_t onceToken; @@ -162,7 +162,7 @@ static dispatch_once_t onceToken;
162 } 162 }
163 } 163 }
164 164
165 -- (void)getAllAlbums:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(NSArray<TZAlbumModel *> *))completion{ 165 +- (void)getAllAlbums:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage needFetchAssets:(BOOL)needFetchAssets completion:(void (^)(NSArray<CNTZAlbumModel *> *))completion{
166 NSMutableArray *albumArr = [NSMutableArray array]; 166 NSMutableArray *albumArr = [NSMutableArray array];
167 if (iOS8Later) { 167 if (iOS8Later) {
168 PHFetchOptions *option = [[PHFetchOptions alloc] init]; 168 PHFetchOptions *option = [[PHFetchOptions alloc] init];
@@ -242,17 +242,17 @@ static dispatch_once_t onceToken; @@ -242,17 +242,17 @@ static dispatch_once_t onceToken;
242 #pragma mark - Get Assets 242 #pragma mark - Get Assets
243 243
244 /// Get Assets 获得照片数组 244 /// Get Assets 获得照片数组
245 -- (void)getAssetsFromFetchResult:(id)result completion:(void (^)(NSArray<TZAssetModel *> *))completion {  
246 - TZImagePickerConfig *config = [TZImagePickerConfig sharedInstance]; 245 +- (void)getAssetsFromFetchResult:(id)result completion:(void (^)(NSArray<CNTZAssetModel *> *))completion {
  246 + CNTZImagePickerConfig *config = [CNTZImagePickerConfig sharedInstance];
247 return [self getAssetsFromFetchResult:result allowPickingVideo:config.allowPickingVideo allowPickingImage:config.allowPickingImage completion:completion]; 247 return [self getAssetsFromFetchResult:result allowPickingVideo:config.allowPickingVideo allowPickingImage:config.allowPickingImage completion:completion];
248 } 248 }
249 249
250 -- (void)getAssetsFromFetchResult:(id)result allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(NSArray<TZAssetModel *> *))completion { 250 +- (void)getAssetsFromFetchResult:(id)result allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(NSArray<CNTZAssetModel *> *))completion {
251 NSMutableArray *photoArr = [NSMutableArray array]; 251 NSMutableArray *photoArr = [NSMutableArray array];
252 if ([result isKindOfClass:[PHFetchResult class]]) { 252 if ([result isKindOfClass:[PHFetchResult class]]) {
253 PHFetchResult *fetchResult = (PHFetchResult *)result; 253 PHFetchResult *fetchResult = (PHFetchResult *)result;
254 [fetchResult enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 254 [fetchResult enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
255 - TZAssetModel *model = [self assetModelWithAsset:obj allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage]; 255 + CNTZAssetModel *model = [self assetModelWithAsset:obj allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage];
256 if (model) { 256 if (model) {
257 [photoArr addObject:model]; 257 [photoArr addObject:model];
258 } 258 }
@@ -271,7 +271,7 @@ static dispatch_once_t onceToken; @@ -271,7 +271,7 @@ static dispatch_once_t onceToken;
271 if (result == nil) { 271 if (result == nil) {
272 if (completion) completion(photoArr); 272 if (completion) completion(photoArr);
273 } 273 }
274 - TZAssetModel *model = [self assetModelWithAsset:result allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage]; 274 + CNTZAssetModel *model = [self assetModelWithAsset:result allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage];
275 if (model) { 275 if (model) {
276 [photoArr addObject:model]; 276 [photoArr addObject:model];
277 } 277 }
@@ -290,7 +290,7 @@ static dispatch_once_t onceToken; @@ -290,7 +290,7 @@ static dispatch_once_t onceToken;
290 290
291 /// Get asset at index 获得下标为index的单个照片 291 /// Get asset at index 获得下标为index的单个照片
292 /// if index beyond bounds, return nil in callback 如果索引越界, 在回调中返回 nil 292 /// if index beyond bounds, return nil in callback 如果索引越界, 在回调中返回 nil
293 -- (void)getAssetFromFetchResult:(id)result atIndex:(NSInteger)index allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(TZAssetModel *))completion { 293 +- (void)getAssetFromFetchResult:(id)result atIndex:(NSInteger)index allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(CNTZAssetModel *))completion {
294 if ([result isKindOfClass:[PHFetchResult class]]) { 294 if ([result isKindOfClass:[PHFetchResult class]]) {
295 PHFetchResult *fetchResult = (PHFetchResult *)result; 295 PHFetchResult *fetchResult = (PHFetchResult *)result;
296 PHAsset *asset; 296 PHAsset *asset;
@@ -301,7 +301,7 @@ static dispatch_once_t onceToken; @@ -301,7 +301,7 @@ static dispatch_once_t onceToken;
301 if (completion) completion(nil); 301 if (completion) completion(nil);
302 return; 302 return;
303 } 303 }
304 - TZAssetModel *model = [self assetModelWithAsset:asset allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage]; 304 + CNTZAssetModel *model = [self assetModelWithAsset:asset allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage];
305 if (completion) completion(model); 305 if (completion) completion(model);
306 } else if ([result isKindOfClass:[ALAssetsGroup class]]) { 306 } else if ([result isKindOfClass:[ALAssetsGroup class]]) {
307 ALAssetsGroup *group = (ALAssetsGroup *)result; 307 ALAssetsGroup *group = (ALAssetsGroup *)result;
@@ -316,7 +316,7 @@ static dispatch_once_t onceToken; @@ -316,7 +316,7 @@ static dispatch_once_t onceToken;
316 @try { 316 @try {
317 [group enumerateAssetsAtIndexes:indexSet options:NSEnumerationConcurrent usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { 317 [group enumerateAssetsAtIndexes:indexSet options:NSEnumerationConcurrent usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
318 if (!result) return; 318 if (!result) return;
319 - TZAssetModel *model = [self assetModelWithAsset:result allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage]; 319 + CNTZAssetModel *model = [self assetModelWithAsset:result allowPickingVideo:allowPickingVideo allowPickingImage:allowPickingImage];
320 if (completion) completion(model); 320 if (completion) completion(model);
321 }]; 321 }];
322 } 322 }
@@ -326,19 +326,19 @@ static dispatch_once_t onceToken; @@ -326,19 +326,19 @@ static dispatch_once_t onceToken;
326 } 326 }
327 } 327 }
328 328
329 -- (TZAssetModel *)assetModelWithAsset:(id)asset allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage { 329 +- (CNTZAssetModel *)assetModelWithAsset:(id)asset allowPickingVideo:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage {
330 BOOL canSelect = YES; 330 BOOL canSelect = YES;
331 if ([self.pickerDelegate respondsToSelector:@selector(isAssetCanSelect:)]) { 331 if ([self.pickerDelegate respondsToSelector:@selector(isAssetCanSelect:)]) {
332 canSelect = [self.pickerDelegate isAssetCanSelect:asset]; 332 canSelect = [self.pickerDelegate isAssetCanSelect:asset];
333 } 333 }
334 if (!canSelect) return nil; 334 if (!canSelect) return nil;
335 335
336 - TZAssetModel *model;  
337 - TZAssetModelMediaType type = [self getAssetType:asset]; 336 + CNTZAssetModel *model;
  337 + CNTZAssetModelMediaType type = [self getAssetType:asset];
338 if ([asset isKindOfClass:[PHAsset class]]) { 338 if ([asset isKindOfClass:[PHAsset class]]) {
339 - if (!allowPickingVideo && type == TZAssetModelMediaTypeVideo) return nil;  
340 - if (!allowPickingImage && type == TZAssetModelMediaTypePhoto) return nil;  
341 - if (!allowPickingImage && type == TZAssetModelMediaTypePhotoGif) return nil; 339 + if (!allowPickingVideo && type == CNTZAssetModelMediaTypeVideo) return nil;
  340 + if (!allowPickingImage && type == CNTZAssetModelMediaTypePhoto) return nil;
  341 + if (!allowPickingImage && type == CNTZAssetModelMediaTypePhotoGif) return nil;
342 342
343 PHAsset *phAsset = (PHAsset *)asset; 343 PHAsset *phAsset = (PHAsset *)asset;
344 if (self.hideWhenCanNotSelect) { 344 if (self.hideWhenCanNotSelect) {
@@ -347,20 +347,20 @@ static dispatch_once_t onceToken; @@ -347,20 +347,20 @@ static dispatch_once_t onceToken;
347 return nil; 347 return nil;
348 } 348 }
349 } 349 }
350 - NSString *timeLength = type == TZAssetModelMediaTypeVideo ? [NSString stringWithFormat:@"%0.0f",phAsset.duration] : @""; 350 + NSString *timeLength = type == CNTZAssetModelMediaTypeVideo ? [NSString stringWithFormat:@"%0.0f",phAsset.duration] : @"";
351 timeLength = [self getNewTimeFromDurationSecond:timeLength.integerValue]; 351 timeLength = [self getNewTimeFromDurationSecond:timeLength.integerValue];
352 - model = [TZAssetModel modelWithAsset:asset type:type timeLength:timeLength]; 352 + model = [CNTZAssetModel modelWithAsset:asset type:type timeLength:timeLength];
353 } else { 353 } else {
354 if (!allowPickingVideo){ 354 if (!allowPickingVideo){
355 - model = [TZAssetModel modelWithAsset:asset type:type]; 355 + model = [CNTZAssetModel modelWithAsset:asset type:type];
356 return model; 356 return model;
357 } 357 }
358 /// Allow picking video 358 /// Allow picking video
359 - if (type == TZAssetModelMediaTypeVideo) { 359 + if (type == CNTZAssetModelMediaTypeVideo) {
360 NSTimeInterval duration = [[asset valueForProperty:ALAssetPropertyDuration] doubleValue]; 360 NSTimeInterval duration = [[asset valueForProperty:ALAssetPropertyDuration] doubleValue];
361 NSString *timeLength = [NSString stringWithFormat:@"%0.0f",duration]; 361 NSString *timeLength = [NSString stringWithFormat:@"%0.0f",duration];
362 timeLength = [self getNewTimeFromDurationSecond:timeLength.integerValue]; 362 timeLength = [self getNewTimeFromDurationSecond:timeLength.integerValue];
363 - model = [TZAssetModel modelWithAsset:asset type:type timeLength:timeLength]; 363 + model = [CNTZAssetModel modelWithAsset:asset type:type timeLength:timeLength];
364 } else { 364 } else {
365 if (self.hideWhenCanNotSelect) { 365 if (self.hideWhenCanNotSelect) {
366 // 过滤掉尺寸不满足要求的图片 366 // 过滤掉尺寸不满足要求的图片
@@ -368,30 +368,30 @@ static dispatch_once_t onceToken; @@ -368,30 +368,30 @@ static dispatch_once_t onceToken;
368 return nil; 368 return nil;
369 } 369 }
370 } 370 }
371 - model = [TZAssetModel modelWithAsset:asset type:type]; 371 + model = [CNTZAssetModel modelWithAsset:asset type:type];
372 } 372 }
373 } 373 }
374 return model; 374 return model;
375 } 375 }
376 376
377 -- (TZAssetModelMediaType)getAssetType:(id)asset {  
378 - TZAssetModelMediaType type = TZAssetModelMediaTypePhoto; 377 +- (CNTZAssetModelMediaType)getAssetType:(id)asset {
  378 + CNTZAssetModelMediaType type = CNTZAssetModelMediaTypePhoto;
379 if ([asset isKindOfClass:[PHAsset class]]) { 379 if ([asset isKindOfClass:[PHAsset class]]) {
380 PHAsset *phAsset = (PHAsset *)asset; 380 PHAsset *phAsset = (PHAsset *)asset;
381 - if (phAsset.mediaType == PHAssetMediaTypeVideo) type = TZAssetModelMediaTypeVideo;  
382 - else if (phAsset.mediaType == PHAssetMediaTypeAudio) type = TZAssetModelMediaTypeAudio; 381 + if (phAsset.mediaType == PHAssetMediaTypeVideo) type = CNTZAssetModelMediaTypeVideo;
  382 + else if (phAsset.mediaType == PHAssetMediaTypeAudio) type = CNTZAssetModelMediaTypeAudio;
383 else if (phAsset.mediaType == PHAssetMediaTypeImage) { 383 else if (phAsset.mediaType == PHAssetMediaTypeImage) {
384 if (@available(iOS 9.1, *)) { 384 if (@available(iOS 9.1, *)) {
385 - // if (asset.mediaSubtypes == PHAssetMediaSubtypePhotoLive) type = TZAssetModelMediaTypeLivePhoto; 385 + // if (asset.mediaSubtypes == PHAssetMediaSubtypePhotoLive) type = CNTZAssetModelMediaTypeLivePhoto;
386 } 386 }
387 // Gif 387 // Gif
388 if ([[phAsset valueForKey:@"filename"] hasSuffix:@"GIF"]) { 388 if ([[phAsset valueForKey:@"filename"] hasSuffix:@"GIF"]) {
389 - type = TZAssetModelMediaTypePhotoGif; 389 + type = CNTZAssetModelMediaTypePhotoGif;
390 } 390 }
391 } 391 }
392 } else { 392 } else {
393 if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) { 393 if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
394 - type = TZAssetModelMediaTypeVideo; 394 + type = CNTZAssetModelMediaTypeVideo;
395 } 395 }
396 } 396 }
397 return type; 397 return type;
@@ -424,16 +424,16 @@ static dispatch_once_t onceToken; @@ -424,16 +424,16 @@ static dispatch_once_t onceToken;
424 __block NSInteger dataLength = 0; 424 __block NSInteger dataLength = 0;
425 __block NSInteger assetCount = 0; 425 __block NSInteger assetCount = 0;
426 for (NSInteger i = 0; i < photos.count; i++) { 426 for (NSInteger i = 0; i < photos.count; i++) {
427 - TZAssetModel *model = photos[i]; 427 + CNTZAssetModel *model = photos[i];
428 if ([model.asset isKindOfClass:[PHAsset class]]) { 428 if ([model.asset isKindOfClass:[PHAsset class]]) {
429 PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init]; 429 PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
430 options.resizeMode = PHImageRequestOptionsResizeModeFast; 430 options.resizeMode = PHImageRequestOptionsResizeModeFast;
431 options.networkAccessAllowed = YES; 431 options.networkAccessAllowed = YES;
432 - if (model.type == TZAssetModelMediaTypePhotoGif) { 432 + if (model.type == CNTZAssetModelMediaTypePhotoGif) {
433 options.version = PHImageRequestOptionsVersionOriginal; 433 options.version = PHImageRequestOptionsVersionOriginal;
434 } 434 }
435 [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { 435 [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
436 - if (model.type != TZAssetModelMediaTypeVideo) dataLength += imageData.length; 436 + if (model.type != CNTZAssetModelMediaTypeVideo) dataLength += imageData.length;
437 assetCount ++; 437 assetCount ++;
438 if (assetCount >= photos.count) { 438 if (assetCount >= photos.count) {
439 NSString *bytes = [self getBytesFromDataLength:dataLength]; 439 NSString *bytes = [self getBytesFromDataLength:dataLength];
@@ -442,7 +442,7 @@ static dispatch_once_t onceToken; @@ -442,7 +442,7 @@ static dispatch_once_t onceToken;
442 }]; 442 }];
443 } else if ([model.asset isKindOfClass:[ALAsset class]]) { 443 } else if ([model.asset isKindOfClass:[ALAsset class]]) {
444 ALAssetRepresentation *representation = [model.asset defaultRepresentation]; 444 ALAssetRepresentation *representation = [model.asset defaultRepresentation];
445 - if (model.type != TZAssetModelMediaTypeVideo) dataLength += (NSInteger)representation.size; 445 + if (model.type != CNTZAssetModelMediaTypeVideo) dataLength += (NSInteger)representation.size;
446 if (i >= photos.count - 1) { 446 if (i >= photos.count - 1) {
447 NSString *bytes = [self getBytesFromDataLength:dataLength]; 447 NSString *bytes = [self getBytesFromDataLength:dataLength];
448 if (completion) completion(bytes); 448 if (completion) completion(bytes);
@@ -467,7 +467,7 @@ static dispatch_once_t onceToken; @@ -467,7 +467,7 @@ static dispatch_once_t onceToken;
467 467
468 /// Get photo 获得照片本身 468 /// Get photo 获得照片本身
469 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *, NSDictionary *, BOOL isDegraded))completion { 469 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *, NSDictionary *, BOOL isDegraded))completion {
470 - CGFloat fullScreenWidth = TZScreenWidth; 470 + CGFloat fullScreenWidth = CNTZScreenWidth;
471 if (fullScreenWidth > _photoPreviewMaxWidth) { 471 if (fullScreenWidth > _photoPreviewMaxWidth) {
472 fullScreenWidth = _photoPreviewMaxWidth; 472 fullScreenWidth = _photoPreviewMaxWidth;
473 } 473 }
@@ -479,7 +479,7 @@ static dispatch_once_t onceToken; @@ -479,7 +479,7 @@ static dispatch_once_t onceToken;
479 } 479 }
480 480
481 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion progressHandler:(void (^)(double progress, NSError *error, BOOL *stop, NSDictionary *info))progressHandler networkAccessAllowed:(BOOL)networkAccessAllowed { 481 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion progressHandler:(void (^)(double progress, NSError *error, BOOL *stop, NSDictionary *info))progressHandler networkAccessAllowed:(BOOL)networkAccessAllowed {
482 - CGFloat fullScreenWidth = TZScreenWidth; 482 + CGFloat fullScreenWidth = CNTZScreenWidth;
483 if (fullScreenWidth > _photoPreviewMaxWidth) { 483 if (fullScreenWidth > _photoPreviewMaxWidth) {
484 fullScreenWidth = _photoPreviewMaxWidth; 484 fullScreenWidth = _photoPreviewMaxWidth;
485 } 485 }
@@ -519,12 +519,12 @@ static dispatch_once_t onceToken; @@ -519,12 +519,12 @@ static dispatch_once_t onceToken;
519 - (int32_t)getPhotoWithAsset:(id)asset photoWidth:(CGFloat)photoWidth completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion progressHandler:(void (^)(double progress, NSError *error, BOOL *stop, NSDictionary *info))progressHandler networkAccessAllowed:(BOOL)networkAccessAllowed { 519 - (int32_t)getPhotoWithAsset:(id)asset photoWidth:(CGFloat)photoWidth completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion progressHandler:(void (^)(double progress, NSError *error, BOOL *stop, NSDictionary *info))progressHandler networkAccessAllowed:(BOOL)networkAccessAllowed {
520 if ([asset isKindOfClass:[PHAsset class]]) { 520 if ([asset isKindOfClass:[PHAsset class]]) {
521 CGSize imageSize; 521 CGSize imageSize;
522 - if (photoWidth < TZScreenWidth && photoWidth < _photoPreviewMaxWidth) { 522 + if (photoWidth < CNTZScreenWidth && photoWidth < _photoPreviewMaxWidth) {
523 imageSize = AssetGridThumbnailSize; 523 imageSize = AssetGridThumbnailSize;
524 } else { 524 } else {
525 PHAsset *phAsset = (PHAsset *)asset; 525 PHAsset *phAsset = (PHAsset *)asset;
526 CGFloat aspectRatio = phAsset.pixelWidth / (CGFloat)phAsset.pixelHeight; 526 CGFloat aspectRatio = phAsset.pixelWidth / (CGFloat)phAsset.pixelHeight;
527 - CGFloat pixelWidth = photoWidth * TZScreenScale * 1.5; 527 + CGFloat pixelWidth = photoWidth * CNTZScreenScale * 1.5;
528 // 超宽图片 528 // 超宽图片
529 if (aspectRatio > 1.8) { 529 if (aspectRatio > 1.8) {
530 pixelWidth = pixelWidth * aspectRatio; 530 pixelWidth = pixelWidth * aspectRatio;
@@ -567,7 +567,7 @@ static dispatch_once_t onceToken; @@ -567,7 +567,7 @@ static dispatch_once_t onceToken;
567 options.resizeMode = PHImageRequestOptionsResizeModeFast; 567 options.resizeMode = PHImageRequestOptionsResizeModeFast;
568 [[PHImageManager defaultManager] requestImageDataForAsset:asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { 568 [[PHImageManager defaultManager] requestImageDataForAsset:asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
569 UIImage *resultImage = [UIImage imageWithData:imageData scale:0.1]; 569 UIImage *resultImage = [UIImage imageWithData:imageData scale:0.1];
570 - if (![TZImagePickerConfig sharedInstance].notScaleImage) { 570 + if (![CNTZImagePickerConfig sharedInstance].notScaleImage) {
571 resultImage = [self scaleImage:resultImage toSize:imageSize]; 571 resultImage = [self scaleImage:resultImage toSize:imageSize];
572 } 572 }
573 if (!resultImage) { 573 if (!resultImage) {
@@ -587,7 +587,7 @@ static dispatch_once_t onceToken; @@ -587,7 +587,7 @@ static dispatch_once_t onceToken;
587 dispatch_async(dispatch_get_main_queue(), ^{ 587 dispatch_async(dispatch_get_main_queue(), ^{
588 if (completion) completion(thumbnailImage,nil,YES); 588 if (completion) completion(thumbnailImage,nil,YES);
589 589
590 - if (photoWidth == TZScreenWidth || photoWidth == self->_photoPreviewMaxWidth) { 590 + if (photoWidth == CNTZScreenWidth || photoWidth == self->_photoPreviewMaxWidth) {
591 dispatch_async(dispatch_get_global_queue(0,0), ^{ 591 dispatch_async(dispatch_get_global_queue(0,0), ^{
592 ALAssetRepresentation *assetRep = [alAsset defaultRepresentation]; 592 ALAssetRepresentation *assetRep = [alAsset defaultRepresentation];
593 CGImageRef fullScrennImageRef = [assetRep fullScreenImage]; 593 CGImageRef fullScrennImageRef = [assetRep fullScreenImage];
@@ -605,13 +605,13 @@ static dispatch_once_t onceToken; @@ -605,13 +605,13 @@ static dispatch_once_t onceToken;
605 } 605 }
606 606
607 /// Get postImage / 获取封面图 607 /// Get postImage / 获取封面图
608 -- (void)getPostImageWithAlbumModel:(TZAlbumModel *)model completion:(void (^)(UIImage *))completion { 608 +- (void)getPostImageWithAlbumModel:(CNTZAlbumModel *)model completion:(void (^)(UIImage *))completion {
609 if (iOS8Later) { 609 if (iOS8Later) {
610 id asset = [model.result lastObject]; 610 id asset = [model.result lastObject];
611 if (!self.sortAscendingByModificationDate) { 611 if (!self.sortAscendingByModificationDate) {
612 asset = [model.result firstObject]; 612 asset = [model.result firstObject];
613 } 613 }
614 - [[TZImageManager manager] getPhotoWithAsset:asset photoWidth:80 completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 614 + [[CNTZImageManager manager] getPhotoWithAsset:asset photoWidth:80 completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
615 if (photo) {//lxg: 裂图 615 if (photo) {//lxg: 裂图
616 model.isExport = YES; 616 model.isExport = YES;
617 }else{ 617 }else{
@@ -924,7 +924,7 @@ static dispatch_once_t onceToken; @@ -924,7 +924,7 @@ static dispatch_once_t onceToken;
924 [[NSFileManager defaultManager] createDirectoryAtPath:[NSHomeDirectory() stringByAppendingFormat:@"/tmp"] withIntermediateDirectories:YES attributes:nil error:nil]; 924 [[NSFileManager defaultManager] createDirectoryAtPath:[NSHomeDirectory() stringByAppendingFormat:@"/tmp"] withIntermediateDirectories:YES attributes:nil error:nil];
925 } 925 }
926 926
927 - if ([TZImagePickerConfig sharedInstance].needFixComposition) { 927 + if ([CNTZImagePickerConfig sharedInstance].needFixComposition) {
928 AVMutableVideoComposition *videoComposition = [self fixedCompositionWithAsset:videoAsset]; 928 AVMutableVideoComposition *videoComposition = [self fixedCompositionWithAsset:videoAsset];
929 if (videoComposition.renderSize.width) { 929 if (videoComposition.renderSize.width) {
930 // 修正视频转向 930 // 修正视频转向
@@ -1049,8 +1049,8 @@ static dispatch_once_t onceToken; @@ -1049,8 +1049,8 @@ static dispatch_once_t onceToken;
1049 1049
1050 #pragma mark - Private Method 1050 #pragma mark - Private Method
1051 1051
1052 -- (TZAlbumModel *)modelWithResult:(id)result name:(NSString *)name isCameraRoll:(BOOL)isCameraRoll needFetchAssets:(BOOL)needFetchAssets {  
1053 - TZAlbumModel *model = [[TZAlbumModel alloc] init]; 1052 +- (CNTZAlbumModel *)modelWithResult:(id)result name:(NSString *)name isCameraRoll:(BOOL)isCameraRoll needFetchAssets:(BOOL)needFetchAssets {
  1053 + CNTZAlbumModel *model = [[CNTZAlbumModel alloc] init];
1054 [model setResult:result needFetchAssets:needFetchAssets]; 1054 [model setResult:result needFetchAssets:needFetchAssets];
1055 model.name = name; 1055 model.name = name;
1056 model.isCameraRoll = isCameraRoll; 1056 model.isCameraRoll = isCameraRoll;
@@ -1259,10 +1259,10 @@ static dispatch_once_t onceToken; @@ -1259,10 +1259,10 @@ static dispatch_once_t onceToken;
1259 @end 1259 @end
1260 1260
1261 1261
1262 -//@implementation TZSortDescriptor 1262 +//@implementation CNTZSortDescriptor
1263 // 1263 //
1264 //- (id)reversedSortDescriptor { 1264 //- (id)reversedSortDescriptor {
1265 -// return [NSNumber numberWithBool:![TZImageManager manager].sortAscendingByModificationDate]; 1265 +// return [NSNumber numberWithBool:![CNTZImageManager manager].sortAscendingByModificationDate];
1266 //} 1266 //}
1267 // 1267 //
1268 //@end 1268 //@end
CNLiveImagePickerController/Classes/TZImagePickerController.bundle/MMVideoPreviewPlay@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/MMVideoPreviewPlay@2x.png

3.56 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/MMVideoPreviewPlayHL@2x.png

3.56 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/Root.plist renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/Root.plist
CNLiveImagePickerController/Classes/TZImagePickerController.bundle/VideoSendIcon@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/VideoSendIcon@2x.png

223 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/en.lproj/Localizable.strings renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/en.lproj/Localizable.strings
1 Binary files a/CNLiveImagePickerController/Classes/TZImagePickerController.bundle/en.lproj/Localizable.strings and b/CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/en.lproj/Localizable.strings differ 1 Binary files a/CNLiveImagePickerController/Classes/TZImagePickerController.bundle/en.lproj/Localizable.strings and b/CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/en.lproj/Localizable.strings differ
CNLiveImagePickerController/Classes/TZImagePickerController.bundle/fb_quxiao@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/fb_quxiao@2x.png

1.16 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/mjz_bq@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/mjz_bq@2x.png

1.23 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/mjz_go@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/mjz_go@2x.png

746 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/mjz_q@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/mjz_q@2x.png

2.77 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/mjz_sq@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/mjz_sq@2x.png

1.14 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/mjz_zk@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/mjz_zk@2x.png

1.15 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/navi_back@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/navi_back@2x.png

116 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/ph_back@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/ph_back@2x.png

384 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_back@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_back@2x.png

1.16 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_cell_normal@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_cell_normal@2x.png

1.35 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_def_photoPickerVc@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_def_photoPickerVc@2x.png

1.13 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_def_previewVc@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_def_previewVc@2x.png

1.13 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_enter@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_enter@2x.png

268 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_number_icon@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_number_icon@2x.png

501 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_original_def@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_original_def@2x.png

1.56 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_original_nor@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_original_nor@2x.png

2.12 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_original_normal@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_original_normal@2x.png

902 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_original_sel@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_original_sel@2x.png

620 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_original_select@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_original_select@2x.png

1.31 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_sel_photoPickerVc@2x.png

1006 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/photo_sel_previewVc@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/photo_sel_previewVc@2x.png

1.16 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/placeImg@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/placeImg@2x.png

4.48 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/preview_number_icon@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/preview_number_icon@2x.png

501 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/preview_original_def@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/preview_original_def@2x.png

392 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/publish_zw@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/publish_zw@2x.png

7.66 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/takePicture80@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/takePicture80@2x.png

1.25 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/takePicture@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/takePicture@2x.png

2.98 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/upload_selection1@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/upload_selection1@2x.png

1.35 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/vi.lproj/Localizable.strings renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/vi.lproj/Localizable.strings
CNLiveImagePickerController/Classes/TZImagePickerController.bundle/video_edit_left@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/video_edit_left@2x.png

203 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/video_edit_right@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/video_edit_right@2x.png

208 Bytes

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/xzq_fh@2x.png renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/xzq_fh@2x.png

1.71 KB

CNLiveImagePickerController/Classes/TZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings
1 Binary files a/CNLiveImagePickerController/Classes/TZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings and b/CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings differ 1 Binary files a/CNLiveImagePickerController/Classes/TZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings and b/CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/zh-Hans.lproj/Localizable.strings differ
CNLiveImagePickerController/Classes/TZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings
1 Binary files a/CNLiveImagePickerController/Classes/TZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings and b/CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings differ 1 Binary files a/CNLiveImagePickerController/Classes/TZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings and b/CNLiveImagePickerController/Classes/CNTZImagePickerController.bundle/zh-Hant.lproj/Localizable.strings differ
CNLiveImagePickerController/Classes/TZImagePickerController.h renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.h
1 // 1 //
2 -// TZImagePickerController.h  
3 -// TZImagePickerController 2 +// CNTZImagePickerController.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // version 2.2.6 - 2018.08.21 7 // version 2.2.6 - 2018.08.21
8 -// 更多信息,请前往项目的github地址:https://github.com/banchichen/TZImagePickerController 8 +// 更多信息,请前往项目的github地址:https://github.com/banchichen/CNTZImagePickerController
9 9
10 /* 10 /*
11 - 经过测试,比起xib的方式,把TZAssetCell改用纯代码的方式来写,滑动帧数明显提高了(约提高10帧左右) 11 + 经过测试,比起xib的方式,把CNTZAssetCell改用纯代码的方式来写,滑动帧数明显提高了(约提高10帧左右)
12 12
13 最初发现这个问题并修复的是@小鱼周凌宇同学,她的博客地址: http://zhoulingyu.com/ 13 最初发现这个问题并修复的是@小鱼周凌宇同学,她的博客地址: http://zhoulingyu.com/
14 表示感谢~ 14 表示感谢~
@@ -17,13 +17,13 @@ @@ -17,13 +17,13 @@
17 */ 17 */
18 18
19 #import <UIKit/UIKit.h> 19 #import <UIKit/UIKit.h>
20 -#import "TZAssetModel.h"  
21 -#import "NSBundle+TZImagePicker.h"  
22 -#import "TZImageManager.h"  
23 -#import "TZVideoPlayerController.h"  
24 -#import "TZGifPhotoPreviewController.h"  
25 -#import "TZLocationManager.h"  
26 -#import "TZPhotoPreviewController.h" 20 +#import "CNTZAssetModel.h"
  21 +#import "NSBundle+CNTZImagePicker.h"
  22 +#import "CNTZImageManager.h"
  23 +#import "CNTZVideoPlayerController.h"
  24 +#import "CNTZGifPhotoPreviewController.h"
  25 +#import "CNTZLocationManager.h"
  26 +#import "CNTZPhotoPreviewController.h"
27 27
28 #define iOS7Later ([UIDevice currentDevice].systemVersion.floatValue >= 7.0f) 28 #define iOS7Later ([UIDevice currentDevice].systemVersion.floatValue >= 7.0f)
29 #define iOS8Later ([UIDevice currentDevice].systemVersion.floatValue >= 8.0f) 29 #define iOS8Later ([UIDevice currentDevice].systemVersion.floatValue >= 8.0f)
@@ -31,15 +31,15 @@ @@ -31,15 +31,15 @@
31 #define iOS9Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.0f) 31 #define iOS9Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.0f)
32 #define iOS9_1Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.1f) 32 #define iOS9_1Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.1f)
33 33
34 -@class TZAlbumCell, TZAssetCell;  
35 -@protocol TZImagePickerControllerDelegate;  
36 -@interface TZImagePickerController : UINavigationController 34 +@class CNTZAlbumCell, CNTZAssetCell;
  35 +@protocol CNTZImagePickerControllerDelegate;
  36 +@interface CNTZImagePickerController : UINavigationController
37 37
38 #pragma mark - 38 #pragma mark -
39 /// Use this init method / 用这个初始化方法 39 /// Use this init method / 用这个初始化方法
40 -- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<TZImagePickerControllerDelegate>)delegate;  
41 -- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<TZImagePickerControllerDelegate>)delegate;  
42 -- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<TZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc; 40 +- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<CNTZImagePickerControllerDelegate>)delegate;
  41 +- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<CNTZImagePickerControllerDelegate>)delegate;
  42 +- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<CNTZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc;
43 /// This init method just for previewing photos / 用这个初始化方法以预览图片 43 /// This init method just for previewing photos / 用这个初始化方法以预览图片
44 - (instancetype)initWithSelectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index; 44 - (instancetype)initWithSelectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index;
45 /// This init method for crop photo / 用这个初始化方法以裁剪图片 45 /// This init method for crop photo / 用这个初始化方法以裁剪图片
@@ -166,10 +166,10 @@ @@ -166,10 +166,10 @@
166 /// The photos user have selected 166 /// The photos user have selected
167 /// 用户选中过的图片数组 167 /// 用户选中过的图片数组
168 @property (nonatomic, strong) NSMutableArray *selectedAssets; 168 @property (nonatomic, strong) NSMutableArray *selectedAssets;
169 -@property (nonatomic, strong) NSMutableArray<TZAssetModel *> *selectedModels; 169 +@property (nonatomic, strong) NSMutableArray<CNTZAssetModel *> *selectedModels;
170 @property (nonatomic, strong) NSMutableArray *selectedAssetIds; 170 @property (nonatomic, strong) NSMutableArray *selectedAssetIds;
171 -- (void)addSelectedModel:(TZAssetModel *)model;  
172 -- (void)removeSelectedModel:(TZAssetModel *)model; 171 +- (void)addSelectedModel:(CNTZAssetModel *)model;
  172 +- (void)removeSelectedModel:(CNTZAssetModel *)model;
173 173
174 /// Minimum selectable photo width, Default is 0 174 /// Minimum selectable photo width, Default is 0
175 /// 最小可选中的图片宽度,默认是0,小于这个宽度的图片不可选中 175 /// 最小可选中的图片宽度,默认是0,小于这个宽度的图片不可选中
@@ -201,15 +201,15 @@ @@ -201,15 +201,15 @@
201 @property (nonatomic, copy) void (^photoPreviewPageUIConfigBlock)(UICollectionView *collectionView, UIView *naviBar, UIButton *backButton, UIButton *selectButton, UILabel *indexLabel, UIView *toolBar, UIButton *originalPhotoButton, UILabel *originalPhotoLabel, UIButton *doneButton, UIImageView *numberImageView, UILabel *numberLabel); 201 @property (nonatomic, copy) void (^photoPreviewPageUIConfigBlock)(UICollectionView *collectionView, UIView *naviBar, UIButton *backButton, UIButton *selectButton, UILabel *indexLabel, UIView *toolBar, UIButton *originalPhotoButton, UILabel *originalPhotoLabel, UIButton *doneButton, UIImageView *numberImageView, UILabel *numberLabel);
202 @property (nonatomic, copy) void (^videoPreviewPageUIConfigBlock)(UIButton *playButton, UIView *toolBar, UIButton *doneButton); 202 @property (nonatomic, copy) void (^videoPreviewPageUIConfigBlock)(UIButton *playButton, UIView *toolBar, UIButton *doneButton);
203 @property (nonatomic, copy) void (^gifPreviewPageUIConfigBlock)(UIView *toolBar, UIButton *doneButton); 203 @property (nonatomic, copy) void (^gifPreviewPageUIConfigBlock)(UIView *toolBar, UIButton *doneButton);
204 -@property (nonatomic, copy) void (^assetCellDidSetModelBlock)(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);  
205 -@property (nonatomic, copy) void (^albumCellDidSetModelBlock)(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel); 204 +@property (nonatomic, copy) void (^assetCellDidSetModelBlock)(CNTZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);
  205 +@property (nonatomic, copy) void (^albumCellDidSetModelBlock)(CNTZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel);
206 /// 【自定义各页面/组件的frame】在界面viewDidLayoutSubviews/组件layoutSubviews后调用,允许外界修改frame等 206 /// 【自定义各页面/组件的frame】在界面viewDidLayoutSubviews/组件layoutSubviews后调用,允许外界修改frame等
207 @property (nonatomic, copy) void (^photoPickerPageDidLayoutSubviewsBlock)(UICollectionView *collectionView, UIView *bottomToolBar, UIButton *previewButton, UIButton *originalPhotoButton, UILabel *originalPhotoLabel, UIButton *doneButton, UIImageView *numberImageView, UILabel *numberLabel, UIView *divideLine); 207 @property (nonatomic, copy) void (^photoPickerPageDidLayoutSubviewsBlock)(UICollectionView *collectionView, UIView *bottomToolBar, UIButton *previewButton, UIButton *originalPhotoButton, UILabel *originalPhotoLabel, UIButton *doneButton, UIImageView *numberImageView, UILabel *numberLabel, UIView *divideLine);
208 @property (nonatomic, copy) void (^photoPreviewPageDidLayoutSubviewsBlock)(UICollectionView *collectionView, UIView *naviBar, UIButton *backButton, UIButton *selectButton, UILabel *indexLabel, UIView *toolBar, UIButton *originalPhotoButton, UILabel *originalPhotoLabel, UIButton *doneButton, UIImageView *numberImageView, UILabel *numberLabel); 208 @property (nonatomic, copy) void (^photoPreviewPageDidLayoutSubviewsBlock)(UICollectionView *collectionView, UIView *naviBar, UIButton *backButton, UIButton *selectButton, UILabel *indexLabel, UIView *toolBar, UIButton *originalPhotoButton, UILabel *originalPhotoLabel, UIButton *doneButton, UIImageView *numberImageView, UILabel *numberLabel);
209 @property (nonatomic, copy) void (^videoPreviewPageDidLayoutSubviewsBlock)(UIButton *playButton, UIView *toolBar, UIButton *doneButton); 209 @property (nonatomic, copy) void (^videoPreviewPageDidLayoutSubviewsBlock)(UIButton *playButton, UIView *toolBar, UIButton *doneButton);
210 @property (nonatomic, copy) void (^gifPreviewPageDidLayoutSubviewsBlock)(UIView *toolBar, UIButton *doneButton); 210 @property (nonatomic, copy) void (^gifPreviewPageDidLayoutSubviewsBlock)(UIView *toolBar, UIButton *doneButton);
211 -@property (nonatomic, copy) void (^assetCellDidLayoutSubviewsBlock)(TZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);  
212 -@property (nonatomic, copy) void (^albumCellDidLayoutSubviewsBlock)(TZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel); 211 +@property (nonatomic, copy) void (^assetCellDidLayoutSubviewsBlock)(CNTZAssetCell *cell, UIImageView *imageView, UIImageView *selectImageView, UILabel *indexLabel, UIView *bottomView, UILabel *timeLength, UIImageView *videoImgView);
  212 +@property (nonatomic, copy) void (^albumCellDidLayoutSubviewsBlock)(CNTZAlbumCell *cell, UIImageView *posterImageView, UILabel *titleLabel);
213 213
214 #pragma mark - 214 #pragma mark -
215 - (id)showAlertWithTitle:(NSString *)title; 215 - (id)showAlertWithTitle:(NSString *)title;
@@ -266,19 +266,19 @@ @@ -266,19 +266,19 @@
266 // The picker should dismiss itself; when it dismissed these handle will be called. 266 // The picker should dismiss itself; when it dismissed these handle will be called.
267 // You can also set autoDismiss to NO, then the picker don't dismiss itself. 267 // You can also set autoDismiss to NO, then the picker don't dismiss itself.
268 // If isOriginalPhoto is YES, user picked the original photo. 268 // If isOriginalPhoto is YES, user picked the original photo.
269 -// You can get original photo with asset, by the method [[TZImageManager manager] getOriginalPhotoWithAsset:completion:]. 269 +// You can get original photo with asset, by the method [[CNTZImageManager manager] getOriginalPhotoWithAsset:completion:].
270 // The UIImage Object in photos default width is 828px, you can set it by photoWidth property. 270 // The UIImage Object in photos default width is 828px, you can set it by photoWidth property.
271 // 这个照片选择器会自己dismiss,当选择器dismiss的时候,会执行下面的handle 271 // 这个照片选择器会自己dismiss,当选择器dismiss的时候,会执行下面的handle
272 // 你也可以设置autoDismiss属性为NO,选择器就不会自己dismis了 272 // 你也可以设置autoDismiss属性为NO,选择器就不会自己dismis了
273 // 如果isSelectOriginalPhoto为YES,表明用户选择了原图 273 // 如果isSelectOriginalPhoto为YES,表明用户选择了原图
274 -// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:] 274 +// 你可以通过一个asset获得原图,通过这个方法:[[CNTZImageManager manager] getOriginalPhotoWithAsset:completion:]
275 // photos数组里的UIImage对象,默认是828像素宽,你可以通过设置photoWidth属性的值来改变它 275 // photos数组里的UIImage对象,默认是828像素宽,你可以通过设置photoWidth属性的值来改变它
276 @property (nonatomic, copy) void (^didFinishPickingPhotosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto); 276 @property (nonatomic, copy) void (^didFinishPickingPhotosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto);
277 @property (nonatomic, copy) void (^didFinishPickingPhotosWithInfosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto,NSArray<NSDictionary *> *infos); 277 @property (nonatomic, copy) void (^didFinishPickingPhotosWithInfosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto,NSArray<NSDictionary *> *infos);
278 @property (nonatomic, copy) void (^imagePickerControllerDidCancelHandle)(void); 278 @property (nonatomic, copy) void (^imagePickerControllerDidCancelHandle)(void);
279 279
280 #pragma mark - LXG: 视频导出URL 280 #pragma mark - LXG: 视频导出URL
281 -@property (nonatomic, copy) void (^didNewFinishPickingPhotosHandle) (NSArray<UIImage *> *photos,NSArray<TZAssetModel *> *models,NSArray *assets,BOOL isSelectOriginalPhoto); 281 +@property (nonatomic, copy) void (^didNewFinishPickingPhotosHandle) (NSArray<UIImage *> *photos,NSArray<CNTZAssetModel *> *models,NSArray *assets,BOOL isSelectOriginalPhoto);
282 282
283 283
284 // If user picking a video, this handle will be called. 284 // If user picking a video, this handle will be called.
@@ -291,37 +291,37 @@ @@ -291,37 +291,37 @@
291 // 如果用户选择了一个gif图片,下面的handle会被执行 291 // 如果用户选择了一个gif图片,下面的handle会被执行
292 @property (nonatomic, copy) void (^didFinishPickingGifImageHandle)(UIImage *animatedImage,id sourceAssets); 292 @property (nonatomic, copy) void (^didFinishPickingGifImageHandle)(UIImage *animatedImage,id sourceAssets);
293 293
294 -@property (nonatomic, weak) id<TZImagePickerControllerDelegate> pickerDelegate; 294 +@property (nonatomic, weak) id<CNTZImagePickerControllerDelegate> pickerDelegate;
295 295
296 @end 296 @end
297 297
298 298
299 -@protocol TZImagePickerControllerDelegate <NSObject> 299 +@protocol CNTZImagePickerControllerDelegate <NSObject>
300 @optional 300 @optional
301 // The picker should dismiss itself; when it dismissed these handle will be called. 301 // The picker should dismiss itself; when it dismissed these handle will be called.
302 // You can also set autoDismiss to NO, then the picker don't dismiss itself. 302 // You can also set autoDismiss to NO, then the picker don't dismiss itself.
303 // If isOriginalPhoto is YES, user picked the original photo. 303 // If isOriginalPhoto is YES, user picked the original photo.
304 -// You can get original photo with asset, by the method [[TZImageManager manager] getOriginalPhotoWithAsset:completion:]. 304 +// You can get original photo with asset, by the method [[CNTZImageManager manager] getOriginalPhotoWithAsset:completion:].
305 // The UIImage Object in photos default width is 828px, you can set it by photoWidth property. 305 // The UIImage Object in photos default width is 828px, you can set it by photoWidth property.
306 // 这个照片选择器会自己dismiss,当选择器dismiss的时候,会执行下面的handle 306 // 这个照片选择器会自己dismiss,当选择器dismiss的时候,会执行下面的handle
307 // 你也可以设置autoDismiss属性为NO,选择器就不会自己dismis了 307 // 你也可以设置autoDismiss属性为NO,选择器就不会自己dismis了
308 // 如果isSelectOriginalPhoto为YES,表明用户选择了原图 308 // 如果isSelectOriginalPhoto为YES,表明用户选择了原图
309 -// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:] 309 +// 你可以通过一个asset获得原图,通过这个方法:[[CNTZImageManager manager] getOriginalPhotoWithAsset:completion:]
310 // photos数组里的UIImage对象,默认是828像素宽,你可以通过设置photoWidth属性的值来改变它 310 // photos数组里的UIImage对象,默认是828像素宽,你可以通过设置photoWidth属性的值来改变它
311 -- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto;  
312 -- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto infos:(NSArray<NSDictionary *> *)infos;  
313 -//- (void)imagePickerControllerDidCancel:(TZImagePickerController *)picker __attribute__((deprecated("Use -tz_imagePickerControllerDidCancel:.")));  
314 -- (void)tz_imagePickerControllerDidCancel:(TZImagePickerController *)picker; 311 +- (void)imagePickerController:(CNTZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto;
  312 +- (void)imagePickerController:(CNTZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto infos:(NSArray<NSDictionary *> *)infos;
  313 +//- (void)imagePickerControllerDidCancel:(CNTZImagePickerController *)picker __attribute__((deprecated("Use -CNTZ_imagePickerControllerDidCancel:.")));
  314 +- (void)CNTZ_imagePickerControllerDidCancel:(CNTZImagePickerController *)picker;
315 315
316 // If user picking a video, this callback will be called. 316 // If user picking a video, this callback will be called.
317 // If system version > iOS8,asset is kind of PHAsset class, else is ALAsset class. 317 // If system version > iOS8,asset is kind of PHAsset class, else is ALAsset class.
318 // 如果用户选择了一个视频,下面的handle会被执行 318 // 如果用户选择了一个视频,下面的handle会被执行
319 // 如果系统版本大于iOS8,asset是PHAsset类的对象,否则是ALAsset类的对象 319 // 如果系统版本大于iOS8,asset是PHAsset类的对象,否则是ALAsset类的对象
320 -- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingVideo:(UIImage *)coverImage sourceAssets:(id)asset; 320 +- (void)imagePickerController:(CNTZImagePickerController *)picker didFinishPickingVideo:(UIImage *)coverImage sourceAssets:(id)asset;
321 321
322 // If user picking a gif image, this callback will be called. 322 // If user picking a gif image, this callback will be called.
323 // 如果用户选择了一个gif图片,下面的handle会被执行 323 // 如果用户选择了一个gif图片,下面的handle会被执行
324 -- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingGifImage:(UIImage *)animatedImage sourceAssets:(id)asset; 324 +- (void)imagePickerController:(CNTZImagePickerController *)picker didFinishPickingGifImage:(UIImage *)animatedImage sourceAssets:(id)asset;
325 325
326 // Decide album show or not't 326 // Decide album show or not't
327 // 决定相册显示与否 albumName:相册名字 result:相册原始数据 327 // 决定相册显示与否 albumName:相册名字 result:相册原始数据
@@ -333,7 +333,7 @@ @@ -333,7 +333,7 @@
333 @end 333 @end
334 334
335 335
336 -@interface TZAlbumPickerController : UIViewController 336 +@interface CNTZAlbumPickerController : UIViewController
337 @property (nonatomic, assign) NSInteger columnNumber; 337 @property (nonatomic, assign) NSInteger columnNumber;
338 @property (assign, nonatomic) BOOL isFirstAppear; 338 @property (assign, nonatomic) BOOL isFirstAppear;
339 - (void)configTableView; 339 - (void)configTableView;
@@ -345,21 +345,21 @@ @@ -345,21 +345,21 @@
345 @end 345 @end
346 346
347 347
348 -@interface NSString (TzExtension)  
349 -- (BOOL)tz_containsString:(NSString *)string;  
350 -- (CGSize)tz_calculateSizeWithAttributes:(NSDictionary *)attributes maxSize:(CGSize)maxSize; 348 +@interface NSString (CNTZExtension)
  349 +- (BOOL)CNTZ_containsString:(NSString *)string;
  350 +- (CGSize)CNTZ_calculateSizeWithAttributes:(NSDictionary *)attributes maxSize:(CGSize)maxSize;
351 @end 351 @end
352 352
353 353
354 -@interface TZCommonTools : NSObject  
355 -+ (BOOL)tz_isIPhoneX;  
356 -+ (CGFloat)tz_statusBarHeight; 354 +@interface CNTZCommonTools : NSObject
  355 ++ (BOOL)CNTZ_isIPhoneX;
  356 ++ (CGFloat)CNTZ_statusBarHeight;
357 // 获得Info.plist数据字典 357 // 获得Info.plist数据字典
358 -+ (NSDictionary *)tz_getInfoDictionary; 358 ++ (NSDictionary *)CNTZ_getInfoDictionary;
359 @end 359 @end
360 360
361 361
362 -@interface TZImagePickerConfig : NSObject 362 +@interface CNTZImagePickerConfig : NSObject
363 + (instancetype)sharedInstance; 363 + (instancetype)sharedInstance;
364 @property (copy, nonatomic) NSString *preferredLanguage; 364 @property (copy, nonatomic) NSString *preferredLanguage;
365 @property(nonatomic, assign) BOOL allowPickingImage; 365 @property(nonatomic, assign) BOOL allowPickingImage;
CNLiveImagePickerController/Classes/TZImagePickerController.m renamed to CNLiveImagePickerController/Classes/CNTZImagePickerController.m
1 // 1 //
2 -// TZImagePickerController.m  
3 -// TZImagePickerController 2 +// CNTZImagePickerController.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // version 2.2.6 - 2018.08.21 7 // version 2.2.6 - 2018.08.21
8 -// 更多信息,请前往项目的github地址:https://github.com/banchichen/TZImagePickerController  
9 -  
10 -#import "TZImagePickerController.h"  
11 -#import "TZPhotoPickerController.h"  
12 -#import "TZPhotoPreviewController.h"  
13 -#import "TZAssetModel.h"  
14 -#import "TZAssetCell.h"  
15 -#import "UIView+TZLayout.h"  
16 -#import "TZImageManager.h" 8 +// 更多信息,请前往项目的github地址:https://github.com/banchichen/CNTZImagePickerController
  9 +
  10 +#import "CNTZImagePickerController.h"
  11 +#import "CNTZPhotoPickerController.h"
  12 +#import "CNTZPhotoPreviewController.h"
  13 +#import "CNTZAssetModel.h"
  14 +#import "CNTZAssetCell.h"
  15 +#import "UIView+CNTZLayout.h"
  16 +#import "CNTZImageManager.h"
17 #import <sys/utsname.h> 17 #import <sys/utsname.h>
18 18
19 -@interface TZImagePickerController () { 19 +@interface CNTZImagePickerController () {
20 NSTimer *_timer; 20 NSTimer *_timer;
21 UILabel *_tipLabel; 21 UILabel *_tipLabel;
22 UIButton *_settingBtn; 22 UIButton *_settingBtn;
@@ -30,12 +30,12 @@ @@ -30,12 +30,12 @@
30 30
31 UIStatusBarStyle _originStatusBarStyle; 31 UIStatusBarStyle _originStatusBarStyle;
32 } 32 }
33 -/// Default is 4, Use in photos collectionView in TZPhotoPickerController  
34 -/// 默认4列, TZPhotoPickerController中的照片collectionView 33 +/// Default is 4, Use in photos collectionView in CNTZPhotoPickerController
  34 +/// 默认4列, CNTZPhotoPickerController中的照片collectionView
35 @property (nonatomic, assign) NSInteger columnNumber; 35 @property (nonatomic, assign) NSInteger columnNumber;
36 @end 36 @end
37 37
38 -@implementation TZImagePickerController 38 +@implementation CNTZImagePickerController
39 39
40 - (instancetype)init { 40 - (instancetype)init {
41 self = [super init]; 41 self = [super init];
@@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
53 self.view.backgroundColor = [UIColor whiteColor]; 53 self.view.backgroundColor = [UIColor whiteColor];
54 self.navigationBar.barStyle = UIBarStyleBlack; 54 self.navigationBar.barStyle = UIBarStyleBlack;
55 self.navigationBar.translucent = YES; 55 self.navigationBar.translucent = YES;
56 - [TZImageManager manager].shouldFixOrientation = NO; 56 + [CNTZImageManager manager].shouldFixOrientation = NO;
57 57
58 // Default appearance, you can reset these after this method 58 // Default appearance, you can reset these after this method
59 // 默认的外观,你可以在这个方法后重置 59 // 默认的外观,你可以在这个方法后重置
@@ -120,9 +120,9 @@ @@ -120,9 +120,9 @@
120 - (void)configBarButtonItemAppearance { 120 - (void)configBarButtonItemAppearance {
121 UIBarButtonItem *barItem; 121 UIBarButtonItem *barItem;
122 if (@available(iOS 9, *)) { 122 if (@available(iOS 9, *)) {
123 - barItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[TZImagePickerController class]]]; 123 + barItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[CNTZImagePickerController class]]];
124 } else { 124 } else {
125 - barItem = [UIBarButtonItem appearanceWhenContainedIn:[TZImagePickerController class], nil]; 125 + barItem = [UIBarButtonItem appearanceWhenContainedIn:[CNTZImagePickerController class], nil];
126 } 126 }
127 NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary]; 127 NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary];
128 textAttrs[NSForegroundColorAttributeName] = self.barItemTextColor; 128 textAttrs[NSForegroundColorAttributeName] = self.barItemTextColor;
@@ -146,17 +146,17 @@ @@ -146,17 +146,17 @@
146 return self.statusBarStyle; 146 return self.statusBarStyle;
147 } 147 }
148 148
149 -- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<TZImagePickerControllerDelegate>)delegate { 149 +- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount delegate:(id<CNTZImagePickerControllerDelegate>)delegate {
150 return [self initWithMaxImagesCount:maxImagesCount columnNumber:4 delegate:delegate pushPhotoPickerVc:YES]; 150 return [self initWithMaxImagesCount:maxImagesCount columnNumber:4 delegate:delegate pushPhotoPickerVc:YES];
151 } 151 }
152 152
153 -- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<TZImagePickerControllerDelegate>)delegate { 153 +- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<CNTZImagePickerControllerDelegate>)delegate {
154 return [self initWithMaxImagesCount:maxImagesCount columnNumber:columnNumber delegate:delegate pushPhotoPickerVc:YES]; 154 return [self initWithMaxImagesCount:maxImagesCount columnNumber:columnNumber delegate:delegate pushPhotoPickerVc:YES];
155 } 155 }
156 156
157 -- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<TZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc { 157 +- (instancetype)initWithMaxImagesCount:(NSInteger)maxImagesCount columnNumber:(NSInteger)columnNumber delegate:(id<CNTZImagePickerControllerDelegate>)delegate pushPhotoPickerVc:(BOOL)pushPhotoPickerVc {
158 _pushPhotoPickerVc = pushPhotoPickerVc; 158 _pushPhotoPickerVc = pushPhotoPickerVc;
159 - TZAlbumPickerController *albumPickerVc = [[TZAlbumPickerController alloc] init]; 159 + CNTZAlbumPickerController *albumPickerVc = [[CNTZAlbumPickerController alloc] init];
160 albumPickerVc.isFirstAppear = YES; 160 albumPickerVc.isFirstAppear = YES;
161 albumPickerVc.columnNumber = columnNumber; 161 albumPickerVc.columnNumber = columnNumber;
162 self = [super initWithRootViewController:albumPickerVc]; 162 self = [super initWithRootViewController:albumPickerVc];
@@ -184,31 +184,31 @@ @@ -184,31 +184,31 @@
184 self.columnNumber = columnNumber; 184 self.columnNumber = columnNumber;
185 [self configDefaultSetting]; 185 [self configDefaultSetting];
186 186
187 - if (![[TZImageManager manager] authorizationStatusAuthorized]) { 187 + if (![[CNTZImageManager manager] authorizationStatusAuthorized]) {
188 _tipLabel = [[UILabel alloc] init]; 188 _tipLabel = [[UILabel alloc] init];
189 - _tipLabel.frame = CGRectMake(8, 120, self.view.tz_width - 16, 60); 189 + _tipLabel.frame = CGRectMake(8, 120, self.view.CNTZ_width - 16, 60);
190 _tipLabel.textAlignment = NSTextAlignmentCenter; 190 _tipLabel.textAlignment = NSTextAlignmentCenter;
191 _tipLabel.numberOfLines = 0; 191 _tipLabel.numberOfLines = 0;
192 _tipLabel.font = [UIFont systemFontOfSize:16]; 192 _tipLabel.font = [UIFont systemFontOfSize:16];
193 _tipLabel.textColor = [UIColor blackColor]; 193 _tipLabel.textColor = [UIColor blackColor];
194 194
195 - NSDictionary *infoDict = [TZCommonTools tz_getInfoDictionary]; 195 + NSDictionary *infoDict = [CNTZCommonTools CNTZ_getInfoDictionary];
196 NSString *appName = [infoDict valueForKey:@"CFBundleDisplayName"]; 196 NSString *appName = [infoDict valueForKey:@"CFBundleDisplayName"];
197 if (!appName) appName = [infoDict valueForKey:@"CFBundleName"]; 197 if (!appName) appName = [infoDict valueForKey:@"CFBundleName"];
198 - NSString *tipText = [NSString stringWithFormat:[NSBundle tz_localizedStringForKey:@"Allow %@ to access your album in \"Settings -> Privacy -> Photos\""],appName]; 198 + NSString *tipText = [NSString stringWithFormat:[NSBundle CNTZ_localizedStringForKey:@"Allow %@ to access your album in \"Settings -> Privacy -> Photos\""],appName];
199 _tipLabel.text = tipText; 199 _tipLabel.text = tipText;
200 [self.view addSubview:_tipLabel]; 200 [self.view addSubview:_tipLabel];
201 201
202 if (iOS8Later) { 202 if (iOS8Later) {
203 _settingBtn = [UIButton buttonWithType:UIButtonTypeSystem]; 203 _settingBtn = [UIButton buttonWithType:UIButtonTypeSystem];
204 [_settingBtn setTitle:self.settingBtnTitleStr forState:UIControlStateNormal]; 204 [_settingBtn setTitle:self.settingBtnTitleStr forState:UIControlStateNormal];
205 - _settingBtn.frame = CGRectMake(0, 180, self.view.tz_width, 44); 205 + _settingBtn.frame = CGRectMake(0, 180, self.view.CNTZ_width, 44);
206 _settingBtn.titleLabel.font = [UIFont systemFontOfSize:18]; 206 _settingBtn.titleLabel.font = [UIFont systemFontOfSize:18];
207 [_settingBtn addTarget:self action:@selector(settingBtnClick) forControlEvents:UIControlEventTouchUpInside]; 207 [_settingBtn addTarget:self action:@selector(settingBtnClick) forControlEvents:UIControlEventTouchUpInside];
208 [self.view addSubview:_settingBtn]; 208 [self.view addSubview:_settingBtn];
209 } 209 }
210 210
211 - if ([TZImageManager authorizationStatus] == 0) { 211 + if ([CNTZImageManager authorizationStatus] == 0) {
212 _timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(observeAuthrizationStatusChange) userInfo:nil repeats:NO]; 212 _timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(observeAuthrizationStatusChange) userInfo:nil repeats:NO];
213 } 213 }
214 } else { 214 } else {
@@ -220,7 +220,7 @@ @@ -220,7 +220,7 @@
220 220
221 /// This init method just for previewing photos / 用这个初始化方法以预览图片 221 /// This init method just for previewing photos / 用这个初始化方法以预览图片
222 - (instancetype)initWithSelectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index{ 222 - (instancetype)initWithSelectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index{
223 - TZPhotoPreviewController *previewVc = [[TZPhotoPreviewController alloc] init]; 223 + CNTZPhotoPreviewController *previewVc = [[CNTZPhotoPreviewController alloc] init];
224 self = [super initWithRootViewController:previewVc]; 224 self = [super initWithRootViewController:previewVc];
225 if (self) { 225 if (self) {
226 self.selectedAssets = [NSMutableArray arrayWithArray:selectedAssets]; 226 self.selectedAssets = [NSMutableArray arrayWithArray:selectedAssets];
@@ -245,7 +245,7 @@ @@ -245,7 +245,7 @@
245 245
246 /// This init method for crop photo / 用这个初始化方法以裁剪图片 246 /// This init method for crop photo / 用这个初始化方法以裁剪图片
247 - (instancetype)initCropTypeWithAsset:(id)asset photo:(UIImage *)photo completion:(void (^)(UIImage *cropImage,id asset))completion { 247 - (instancetype)initCropTypeWithAsset:(id)asset photo:(UIImage *)photo completion:(void (^)(UIImage *cropImage,id asset))completion {
248 - TZPhotoPreviewController *previewVc = [[TZPhotoPreviewController alloc] init]; 248 + CNTZPhotoPreviewController *previewVc = [[CNTZPhotoPreviewController alloc] init];
249 self = [super initWithRootViewController:previewVc]; 249 self = [super initWithRootViewController:previewVc];
250 if (self) { 250 if (self) {
251 self.maxImagesCount = 1; 251 self.maxImagesCount = 1;
@@ -288,8 +288,8 @@ @@ -288,8 +288,8 @@
288 self.iconThemeColor = [UIColor colorWithRed:31 / 255.0 green:185 / 255.0 blue:34 / 255.0 alpha:1.0]; 288 self.iconThemeColor = [UIColor colorWithRed:31 / 255.0 green:185 / 255.0 blue:34 / 255.0 alpha:1.0];
289 [self configDefaultBtnTitle]; 289 [self configDefaultBtnTitle];
290 290
291 - CGFloat cropViewWH = MIN(self.view.tz_width, self.view.tz_height) / 3 * 2;  
292 - self.cropRect = CGRectMake((self.view.tz_width - cropViewWH) / 2, (self.view.tz_height - cropViewWH) / 2, cropViewWH, cropViewWH); 291 + CGFloat cropViewWH = MIN(self.view.CNTZ_width, self.view.CNTZ_height) / 3 * 2;
  292 + self.cropRect = CGRectMake((self.view.CNTZ_width - cropViewWH) / 2, (self.view.CNTZ_height - cropViewWH) / 2, cropViewWH, cropViewWH);
293 } 293 }
294 294
295 - (void)configDefaultImageName { 295 - (void)configDefaultImageName {
@@ -343,13 +343,13 @@ @@ -343,13 +343,13 @@
343 } 343 }
344 344
345 - (void)configDefaultBtnTitle { 345 - (void)configDefaultBtnTitle {
346 - self.doneBtnTitleStr = [NSBundle tz_localizedStringForKey:@"Done"];  
347 - self.cancelBtnTitleStr = [NSBundle tz_localizedStringForKey:@"Cancel"];  
348 - self.previewBtnTitleStr = [NSBundle tz_localizedStringForKey:@"Preview"];  
349 - self.fullImageBtnTitleStr = [NSBundle tz_localizedStringForKey:@"Full image"];  
350 - self.settingBtnTitleStr = [NSBundle tz_localizedStringForKey:@"Setting"];  
351 - self.processHintStr = [NSBundle tz_localizedStringForKey:@"Processing..."];  
352 - self.editBtnTitleStr = [NSBundle tz_localizedStringForKey:@"Edit"]; 346 + self.doneBtnTitleStr = [NSBundle CNTZ_localizedStringForKey:@"Done"];
  347 + self.cancelBtnTitleStr = [NSBundle CNTZ_localizedStringForKey:@"Cancel"];
  348 + self.previewBtnTitleStr = [NSBundle CNTZ_localizedStringForKey:@"Preview"];
  349 + self.fullImageBtnTitleStr = [NSBundle CNTZ_localizedStringForKey:@"Full image"];
  350 + self.settingBtnTitleStr = [NSBundle CNTZ_localizedStringForKey:@"Setting"];
  351 + self.processHintStr = [NSBundle CNTZ_localizedStringForKey:@"Processing..."];
  352 + self.editBtnTitleStr = [NSBundle CNTZ_localizedStringForKey:@"Edit"];
353 } 353 }
354 354
355 - (void)setShowSelectedIndex:(BOOL)showSelectedIndex { 355 - (void)setShowSelectedIndex:(BOOL)showSelectedIndex {
@@ -357,39 +357,39 @@ @@ -357,39 +357,39 @@
357 if (showSelectedIndex) { 357 if (showSelectedIndex) {
358 self.photoSelImage = [self createImageWithColor:nil size:CGSizeMake(24, 24) radius:12]; 358 self.photoSelImage = [self createImageWithColor:nil size:CGSizeMake(24, 24) radius:12];
359 } 359 }
360 - [TZImagePickerConfig sharedInstance].showSelectedIndex = showSelectedIndex; 360 + [CNTZImagePickerConfig sharedInstance].showSelectedIndex = showSelectedIndex;
361 } 361 }
362 362
363 - (void)setShowPhotoCannotSelectLayer:(BOOL)showPhotoCannotSelectLayer { 363 - (void)setShowPhotoCannotSelectLayer:(BOOL)showPhotoCannotSelectLayer {
364 _showPhotoCannotSelectLayer = showPhotoCannotSelectLayer; 364 _showPhotoCannotSelectLayer = showPhotoCannotSelectLayer;
365 - [TZImagePickerConfig sharedInstance].showPhotoCannotSelectLayer = showPhotoCannotSelectLayer; 365 + [CNTZImagePickerConfig sharedInstance].showPhotoCannotSelectLayer = showPhotoCannotSelectLayer;
366 } 366 }
367 367
368 - (void)setNotScaleImage:(BOOL)notScaleImage { 368 - (void)setNotScaleImage:(BOOL)notScaleImage {
369 _notScaleImage = notScaleImage; 369 _notScaleImage = notScaleImage;
370 - [TZImagePickerConfig sharedInstance].notScaleImage = notScaleImage; 370 + [CNTZImagePickerConfig sharedInstance].notScaleImage = notScaleImage;
371 } 371 }
372 372
373 - (void)setNeedFixComposition:(BOOL)needFixComposition { 373 - (void)setNeedFixComposition:(BOOL)needFixComposition {
374 _needFixComposition = needFixComposition; 374 _needFixComposition = needFixComposition;
375 - [TZImagePickerConfig sharedInstance].needFixComposition = needFixComposition; 375 + [CNTZImagePickerConfig sharedInstance].needFixComposition = needFixComposition;
376 } 376 }
377 377
378 - (void)observeAuthrizationStatusChange { 378 - (void)observeAuthrizationStatusChange {
379 [_timer invalidate]; 379 [_timer invalidate];
380 _timer = nil; 380 _timer = nil;
381 - if ([TZImageManager authorizationStatus] == 0) { 381 + if ([CNTZImageManager authorizationStatus] == 0) {
382 _timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(observeAuthrizationStatusChange) userInfo:nil repeats:NO]; 382 _timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(observeAuthrizationStatusChange) userInfo:nil repeats:NO];
383 } 383 }
384 384
385 - if ([[TZImageManager manager] authorizationStatusAuthorized]) { 385 + if ([[CNTZImageManager manager] authorizationStatusAuthorized]) {
386 [_tipLabel removeFromSuperview]; 386 [_tipLabel removeFromSuperview];
387 [_settingBtn removeFromSuperview]; 387 [_settingBtn removeFromSuperview];
388 388
389 [self pushPhotoPickerVc]; 389 [self pushPhotoPickerVc];
390 390
391 - TZAlbumPickerController *albumPickerVc = (TZAlbumPickerController *)self.visibleViewController;  
392 - if ([albumPickerVc isKindOfClass:[TZAlbumPickerController class]]) { 391 + CNTZAlbumPickerController *albumPickerVc = (CNTZAlbumPickerController *)self.visibleViewController;
  392 + if ([albumPickerVc isKindOfClass:[CNTZAlbumPickerController class]]) {
393 [albumPickerVc configTableView]; 393 [albumPickerVc configTableView];
394 } 394 }
395 } 395 }
@@ -399,11 +399,11 @@ @@ -399,11 +399,11 @@
399 _didPushPhotoPickerVc = NO; 399 _didPushPhotoPickerVc = NO;
400 // 1.6.8 判断是否需要push到照片选择页,如果_pushPhotoPickerVc为NO,则不push 400 // 1.6.8 判断是否需要push到照片选择页,如果_pushPhotoPickerVc为NO,则不push
401 if (!_didPushPhotoPickerVc && _pushPhotoPickerVc) { 401 if (!_didPushPhotoPickerVc && _pushPhotoPickerVc) {
402 - TZPhotoPickerController *photoPickerVc = [[TZPhotoPickerController alloc] init]; 402 + CNTZPhotoPickerController *photoPickerVc = [[CNTZPhotoPickerController alloc] init];
403 photoPickerVc.isFirstAppear = YES; 403 photoPickerVc.isFirstAppear = YES;
404 photoPickerVc.columnNumber = self.columnNumber; 404 photoPickerVc.columnNumber = self.columnNumber;
405 __weak typeof(self) weakSelf = self; 405 __weak typeof(self) weakSelf = self;
406 - [[TZImageManager manager] getCameraRollAlbum:self.allowPickingVideo allowPickingImage:self.allowPickingImage needFetchAssets:NO completion:^(TZAlbumModel *model) { 406 + [[CNTZImageManager manager] getCameraRollAlbum:self.allowPickingVideo allowPickingImage:self.allowPickingImage needFetchAssets:NO completion:^(CNTZAlbumModel *model) {
407 photoPickerVc.model = model; 407 photoPickerVc.model = model;
408 [weakSelf pushViewController:photoPickerVc animated:YES]; 408 [weakSelf pushViewController:photoPickerVc animated:YES];
409 self->_didPushPhotoPickerVc = YES; 409 self->_didPushPhotoPickerVc = YES;
@@ -414,11 +414,11 @@ @@ -414,11 +414,11 @@
414 - (id)showAlertWithTitle:(NSString *)title { 414 - (id)showAlertWithTitle:(NSString *)title {
415 if (iOS8Later) { 415 if (iOS8Later) {
416 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleAlert]; 416 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:UIAlertControllerStyleAlert];
417 - [alertController addAction:[UIAlertAction actionWithTitle:[NSBundle tz_localizedStringForKey:@"OK"] style:UIAlertActionStyleDefault handler:nil]]; 417 + [alertController addAction:[UIAlertAction actionWithTitle:[NSBundle CNTZ_localizedStringForKey:@"OK"] style:UIAlertActionStyleDefault handler:nil]];
418 [self presentViewController:alertController animated:YES completion:nil]; 418 [self presentViewController:alertController animated:YES completion:nil];
419 return alertController; 419 return alertController;
420 } else { 420 } else {
421 - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:nil delegate:nil cancelButtonTitle:[NSBundle tz_localizedStringForKey:@"OK"] otherButtonTitles:nil, nil]; 421 + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:nil delegate:nil cancelButtonTitle:[NSBundle CNTZ_localizedStringForKey:@"OK"] otherButtonTitles:nil, nil];
422 [alertView show]; 422 [alertView show];
423 return alertView; 423 return alertView;
424 } 424 }
@@ -503,14 +503,14 @@ @@ -503,14 +503,14 @@
503 503
504 - (void)setCircleCropRadius:(NSInteger)circleCropRadius { 504 - (void)setCircleCropRadius:(NSInteger)circleCropRadius {
505 _circleCropRadius = circleCropRadius; 505 _circleCropRadius = circleCropRadius;
506 - self.cropRect = CGRectMake(self.view.tz_width / 2 - circleCropRadius, self.view.tz_height / 2 - _circleCropRadius, _circleCropRadius * 2, _circleCropRadius * 2); 506 + self.cropRect = CGRectMake(self.view.CNTZ_width / 2 - circleCropRadius, self.view.CNTZ_height / 2 - _circleCropRadius, _circleCropRadius * 2, _circleCropRadius * 2);
507 } 507 }
508 508
509 - (void)setCropRect:(CGRect)cropRect { 509 - (void)setCropRect:(CGRect)cropRect {
510 _cropRect = cropRect; 510 _cropRect = cropRect;
511 _cropRectPortrait = cropRect; 511 _cropRectPortrait = cropRect;
512 CGFloat widthHeight = cropRect.size.width; 512 CGFloat widthHeight = cropRect.size.width;
513 - _cropRectLandscape = CGRectMake((self.view.tz_height - widthHeight) / 2, cropRect.origin.x, widthHeight, widthHeight); 513 + _cropRectLandscape = CGRectMake((self.view.CNTZ_height - widthHeight) / 2, cropRect.origin.x, widthHeight, widthHeight);
514 } 514 }
515 515
516 - (void)setTimeout:(NSInteger)timeout { 516 - (void)setTimeout:(NSInteger)timeout {
@@ -522,9 +522,9 @@ @@ -522,9 +522,9 @@
522 } 522 }
523 } 523 }
524 524
525 -- (void)setPickerDelegate:(id<TZImagePickerControllerDelegate>)pickerDelegate { 525 +- (void)setPickerDelegate:(id<CNTZImagePickerControllerDelegate>)pickerDelegate {
526 _pickerDelegate = pickerDelegate; 526 _pickerDelegate = pickerDelegate;
527 - [TZImageManager manager].pickerDelegate = pickerDelegate; 527 + [CNTZImageManager manager].pickerDelegate = pickerDelegate;
528 } 528 }
529 529
530 - (void)setColumnNumber:(NSInteger)columnNumber { 530 - (void)setColumnNumber:(NSInteger)columnNumber {
@@ -535,24 +535,24 @@ @@ -535,24 +535,24 @@
535 _columnNumber = 6; 535 _columnNumber = 6;
536 } 536 }
537 537
538 - TZAlbumPickerController *albumPickerVc = [self.childViewControllers firstObject]; 538 + CNTZAlbumPickerController *albumPickerVc = [self.childViewControllers firstObject];
539 albumPickerVc.columnNumber = _columnNumber; 539 albumPickerVc.columnNumber = _columnNumber;
540 - [TZImageManager manager].columnNumber = _columnNumber; 540 + [CNTZImageManager manager].columnNumber = _columnNumber;
541 } 541 }
542 542
543 - (void)setMinPhotoWidthSelectable:(NSInteger)minPhotoWidthSelectable { 543 - (void)setMinPhotoWidthSelectable:(NSInteger)minPhotoWidthSelectable {
544 _minPhotoWidthSelectable = minPhotoWidthSelectable; 544 _minPhotoWidthSelectable = minPhotoWidthSelectable;
545 - [TZImageManager manager].minPhotoWidthSelectable = minPhotoWidthSelectable; 545 + [CNTZImageManager manager].minPhotoWidthSelectable = minPhotoWidthSelectable;
546 } 546 }
547 547
548 - (void)setMinPhotoHeightSelectable:(NSInteger)minPhotoHeightSelectable { 548 - (void)setMinPhotoHeightSelectable:(NSInteger)minPhotoHeightSelectable {
549 _minPhotoHeightSelectable = minPhotoHeightSelectable; 549 _minPhotoHeightSelectable = minPhotoHeightSelectable;
550 - [TZImageManager manager].minPhotoHeightSelectable = minPhotoHeightSelectable; 550 + [CNTZImageManager manager].minPhotoHeightSelectable = minPhotoHeightSelectable;
551 } 551 }
552 552
553 - (void)setHideWhenCanNotSelect:(BOOL)hideWhenCanNotSelect { 553 - (void)setHideWhenCanNotSelect:(BOOL)hideWhenCanNotSelect {
554 _hideWhenCanNotSelect = hideWhenCanNotSelect; 554 _hideWhenCanNotSelect = hideWhenCanNotSelect;
555 - [TZImageManager manager].hideWhenCanNotSelect = hideWhenCanNotSelect; 555 + [CNTZImageManager manager].hideWhenCanNotSelect = hideWhenCanNotSelect;
556 } 556 }
557 557
558 - (void)setPhotoPreviewMaxWidth:(CGFloat)photoPreviewMaxWidth { 558 - (void)setPhotoPreviewMaxWidth:(CGFloat)photoPreviewMaxWidth {
@@ -562,12 +562,12 @@ @@ -562,12 +562,12 @@
562 } else if (photoPreviewMaxWidth < 500) { 562 } else if (photoPreviewMaxWidth < 500) {
563 _photoPreviewMaxWidth = 500; 563 _photoPreviewMaxWidth = 500;
564 } 564 }
565 - [TZImageManager manager].photoPreviewMaxWidth = _photoPreviewMaxWidth; 565 + [CNTZImageManager manager].photoPreviewMaxWidth = _photoPreviewMaxWidth;
566 } 566 }
567 567
568 - (void)setPhotoWidth:(CGFloat)photoWidth { 568 - (void)setPhotoWidth:(CGFloat)photoWidth {
569 _photoWidth = photoWidth; 569 _photoWidth = photoWidth;
570 - [TZImageManager manager].photoWidth = photoWidth; 570 + [CNTZImageManager manager].photoWidth = photoWidth;
571 } 571 }
572 572
573 - (void)setSelectedAssets:(NSMutableArray *)selectedAssets { 573 - (void)setSelectedAssets:(NSMutableArray *)selectedAssets {
@@ -575,7 +575,7 @@ @@ -575,7 +575,7 @@
575 _selectedModels = [NSMutableArray array]; 575 _selectedModels = [NSMutableArray array];
576 _selectedAssetIds = [NSMutableArray array]; 576 _selectedAssetIds = [NSMutableArray array];
577 for (id asset in selectedAssets) { 577 for (id asset in selectedAssets) {
578 - TZAssetModel *model = [TZAssetModel modelWithAsset:asset type:[[TZImageManager manager] getAssetType:asset]]; 578 + CNTZAssetModel *model = [CNTZAssetModel modelWithAsset:asset type:[[CNTZImageManager manager] getAssetType:asset]];
579 model.isSelected = YES; 579 model.isSelected = YES;
580 [self addSelectedModel:model]; 580 [self addSelectedModel:model];
581 } 581 }
@@ -583,7 +583,7 @@ @@ -583,7 +583,7 @@
583 583
584 - (void)setAllowPickingImage:(BOOL)allowPickingImage { 584 - (void)setAllowPickingImage:(BOOL)allowPickingImage {
585 _allowPickingImage = allowPickingImage; 585 _allowPickingImage = allowPickingImage;
586 - [TZImagePickerConfig sharedInstance].allowPickingImage = allowPickingImage; 586 + [CNTZImagePickerConfig sharedInstance].allowPickingImage = allowPickingImage;
587 if (!allowPickingImage) { 587 if (!allowPickingImage) {
588 _allowTakePicture = NO; 588 _allowTakePicture = NO;
589 } 589 }
@@ -591,7 +591,7 @@ @@ -591,7 +591,7 @@
591 591
592 - (void)setAllowPickingVideo:(BOOL)allowPickingVideo { 592 - (void)setAllowPickingVideo:(BOOL)allowPickingVideo {
593 _allowPickingVideo = allowPickingVideo; 593 _allowPickingVideo = allowPickingVideo;
594 - [TZImagePickerConfig sharedInstance].allowPickingVideo = allowPickingVideo; 594 + [CNTZImagePickerConfig sharedInstance].allowPickingVideo = allowPickingVideo;
595 if (!allowPickingVideo) { 595 if (!allowPickingVideo) {
596 _allowTakeVideo = NO; 596 _allowTakeVideo = NO;
597 } 597 }
@@ -599,19 +599,19 @@ @@ -599,19 +599,19 @@
599 599
600 - (void)setPreferredLanguage:(NSString *)preferredLanguage { 600 - (void)setPreferredLanguage:(NSString *)preferredLanguage {
601 _preferredLanguage = preferredLanguage; 601 _preferredLanguage = preferredLanguage;
602 - [TZImagePickerConfig sharedInstance].preferredLanguage = preferredLanguage; 602 + [CNTZImagePickerConfig sharedInstance].preferredLanguage = preferredLanguage;
603 [self configDefaultBtnTitle]; 603 [self configDefaultBtnTitle];
604 } 604 }
605 605
606 - (void)setLanguageBundle:(NSBundle *)languageBundle { 606 - (void)setLanguageBundle:(NSBundle *)languageBundle {
607 _languageBundle = languageBundle; 607 _languageBundle = languageBundle;
608 - [TZImagePickerConfig sharedInstance].languageBundle = languageBundle; 608 + [CNTZImagePickerConfig sharedInstance].languageBundle = languageBundle;
609 [self configDefaultBtnTitle]; 609 [self configDefaultBtnTitle];
610 } 610 }
611 611
612 - (void)setSortAscendingByModificationDate:(BOOL)sortAscendingByModificationDate { 612 - (void)setSortAscendingByModificationDate:(BOOL)sortAscendingByModificationDate {
613 _sortAscendingByModificationDate = sortAscendingByModificationDate; 613 _sortAscendingByModificationDate = sortAscendingByModificationDate;
614 - [TZImageManager manager].sortAscendingByModificationDate = sortAscendingByModificationDate; 614 + [CNTZImageManager manager].sortAscendingByModificationDate = sortAscendingByModificationDate;
615 } 615 }
616 616
617 - (void)settingBtnClick { 617 - (void)settingBtnClick {
@@ -627,18 +627,18 @@ @@ -627,18 +627,18 @@
627 627
628 - (void)dealloc { 628 - (void)dealloc {
629 // NSLog(@"%@ dealloc",NSStringFromClass(self.class)); 629 // NSLog(@"%@ dealloc",NSStringFromClass(self.class));
630 - NSLog(@"相册_导航_TZImagePickerController_释放"); 630 + NSLog(@"相册_导航_CNTZImagePickerController_释放");
631 } 631 }
632 632
633 -- (void)addSelectedModel:(TZAssetModel *)model { 633 +- (void)addSelectedModel:(CNTZAssetModel *)model {
634 [_selectedModels addObject:model]; 634 [_selectedModels addObject:model];
635 - NSString *assetId = [[TZImageManager manager] getAssetIdentifier:model.asset]; 635 + NSString *assetId = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
636 [_selectedAssetIds addObject:assetId]; 636 [_selectedAssetIds addObject:assetId];
637 } 637 }
638 638
639 -- (void)removeSelectedModel:(TZAssetModel *)model { 639 +- (void)removeSelectedModel:(CNTZAssetModel *)model {
640 [_selectedModels removeObject:model]; 640 [_selectedModels removeObject:model];
641 - NSString *assetId = [[TZImageManager manager] getAssetIdentifier:model.asset]; 641 + NSString *assetId = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
642 [_selectedAssetIds removeObject:assetId]; 642 [_selectedAssetIds removeObject:assetId];
643 } 643 }
644 644
@@ -692,7 +692,7 @@ @@ -692,7 +692,7 @@
692 - (void)viewDidLayoutSubviews { 692 - (void)viewDidLayoutSubviews {
693 [super viewDidLayoutSubviews]; 693 [super viewDidLayoutSubviews];
694 694
695 - _HUDContainer.frame = CGRectMake((self.view.tz_width - 120) / 2, (self.view.tz_height - 90) / 2, 120, 90); 695 + _HUDContainer.frame = CGRectMake((self.view.CNTZ_width - 120) / 2, (self.view.CNTZ_height - 90) / 2, 120, 90);
696 _HUDIndicatorView.frame = CGRectMake(45, 15, 30, 30); 696 _HUDIndicatorView.frame = CGRectMake(45, 15, 30, 30);
697 _HUDLabel.frame = CGRectMake(0,40, 120, 50); 697 _HUDLabel.frame = CGRectMake(0,40, 120, 50);
698 } 698 }
@@ -719,8 +719,8 @@ @@ -719,8 +719,8 @@
719 } 719 }
720 720
721 - (void)callDelegateMethod { 721 - (void)callDelegateMethod {
722 - if ([self.pickerDelegate respondsToSelector:@selector(tz_imagePickerControllerDidCancel:)]) {  
723 - [self.pickerDelegate tz_imagePickerControllerDidCancel:self]; 722 + if ([self.pickerDelegate respondsToSelector:@selector(CNTZ_imagePickerControllerDidCancel:)]) {
  723 + [self.pickerDelegate CNTZ_imagePickerControllerDidCancel:self];
724 } 724 }
725 if (self.imagePickerControllerDidCancelHandle) { 725 if (self.imagePickerControllerDidCancelHandle) {
726 self.imagePickerControllerDidCancelHandle(); 726 self.imagePickerControllerDidCancelHandle();
@@ -730,62 +730,62 @@ @@ -730,62 +730,62 @@
730 @end 730 @end
731 731
732 732
733 -@interface TZAlbumPickerController ()<UITableViewDataSource,UITableViewDelegate> { 733 +@interface CNTZAlbumPickerController ()<UITableViewDataSource,UITableViewDelegate> {
734 UITableView *_tableView; 734 UITableView *_tableView;
735 } 735 }
736 @property (nonatomic, strong) NSMutableArray *albumArr; 736 @property (nonatomic, strong) NSMutableArray *albumArr;
737 @end 737 @end
738 738
739 -@implementation TZAlbumPickerController 739 +@implementation CNTZAlbumPickerController
740 740
741 - (void)viewDidLoad { 741 - (void)viewDidLoad {
742 [super viewDidLoad]; 742 [super viewDidLoad];
743 self.isFirstAppear = YES; 743 self.isFirstAppear = YES;
744 self.view.backgroundColor = [UIColor whiteColor]; 744 self.view.backgroundColor = [UIColor whiteColor];
745 745
746 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 746 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
747 self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:imagePickerVc.cancelBtnTitleStr style:UIBarButtonItemStylePlain target:imagePickerVc action:@selector(cancelButtonClick)]; 747 self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:imagePickerVc.cancelBtnTitleStr style:UIBarButtonItemStylePlain target:imagePickerVc action:@selector(cancelButtonClick)];
748 [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]]; 748 [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]];
749 } 749 }
750 750
751 - (void)viewWillAppear:(BOOL)animated { 751 - (void)viewWillAppear:(BOOL)animated {
752 [super viewWillAppear:animated]; 752 [super viewWillAppear:animated];
753 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 753 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
754 [imagePickerVc hideProgressHUD]; 754 [imagePickerVc hideProgressHUD];
755 if (imagePickerVc.allowPickingImage) { 755 if (imagePickerVc.allowPickingImage) {
756 - self.navigationItem.title = [NSBundle tz_localizedStringForKey:@"Photos"]; 756 + self.navigationItem.title = [NSBundle CNTZ_localizedStringForKey:@"Photos"];
757 } else if (imagePickerVc.allowPickingVideo) { 757 } else if (imagePickerVc.allowPickingVideo) {
758 - self.navigationItem.title = [NSBundle tz_localizedStringForKey:@"Videos"]; 758 + self.navigationItem.title = [NSBundle CNTZ_localizedStringForKey:@"Videos"];
759 } 759 }
760 760
761 if (self.isFirstAppear && !imagePickerVc.navLeftBarButtonSettingBlock) { 761 if (self.isFirstAppear && !imagePickerVc.navLeftBarButtonSettingBlock) {
762 - self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:[NSBundle tz_localizedStringForKey:@"Back"] style:UIBarButtonItemStylePlain target:nil action:nil]; 762 + self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Back"] style:UIBarButtonItemStylePlain target:nil action:nil];
763 } 763 }
764 764
765 [self configTableView]; 765 [self configTableView];
766 } 766 }
767 767
768 - (void)configTableView { 768 - (void)configTableView {
769 - if (![[TZImageManager manager] authorizationStatusAuthorized]) { 769 + if (![[CNTZImageManager manager] authorizationStatusAuthorized]) {
770 return; 770 return;
771 } 771 }
772 772
773 if (self.isFirstAppear) { 773 if (self.isFirstAppear) {
774 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 774 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
775 [imagePickerVc showProgressHUD]; 775 [imagePickerVc showProgressHUD];
776 } 776 }
777 __weak typeof(self) weakSelf = self; 777 __weak typeof(self) weakSelf = self;
778 dispatch_async(dispatch_get_global_queue(0, 0), ^{ 778 dispatch_async(dispatch_get_global_queue(0, 0), ^{
779 dispatch_async(dispatch_get_main_queue(), ^{ 779 dispatch_async(dispatch_get_main_queue(), ^{
780 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)weakSelf.navigationController;  
781 - [[TZImageManager manager] getAllAlbums:imagePickerVc.allowPickingVideo allowPickingImage:imagePickerVc.allowPickingImage needFetchAssets:!weakSelf.isFirstAppear completion:^(NSArray<TZAlbumModel *> *models) { 780 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)weakSelf.navigationController;
  781 + [[CNTZImageManager manager] getAllAlbums:imagePickerVc.allowPickingVideo allowPickingImage:imagePickerVc.allowPickingImage needFetchAssets:!weakSelf.isFirstAppear completion:^(NSArray<CNTZAlbumModel *> *models) {
782 782
783 if (models == nil) { 783 if (models == nil) {
784 [imagePickerVc hideProgressHUD]; 784 [imagePickerVc hideProgressHUD];
785 return; 785 return;
786 } 786 }
787 self->_albumArr = [NSMutableArray arrayWithArray:models]; 787 self->_albumArr = [NSMutableArray arrayWithArray:models];
788 - for (TZAlbumModel *albumModel in self->_albumArr) { 788 + for (CNTZAlbumModel *albumModel in self->_albumArr) {
789 albumModel.selectedModels = imagePickerVc.selectedModels; 789 albumModel.selectedModels = imagePickerVc.selectedModels;
790 } 790 }
791 [imagePickerVc hideProgressHUD]; 791 [imagePickerVc hideProgressHUD];
@@ -801,7 +801,7 @@ @@ -801,7 +801,7 @@
801 self->_tableView.tableFooterView = [[UIView alloc] init]; 801 self->_tableView.tableFooterView = [[UIView alloc] init];
802 self->_tableView.dataSource = self; 802 self->_tableView.dataSource = self;
803 self->_tableView.delegate = self; 803 self->_tableView.delegate = self;
804 - [self->_tableView registerClass:[TZAlbumCell class] forCellReuseIdentifier:@"TZAlbumCell"]; 804 + [self->_tableView registerClass:[CNTZAlbumCell class] forCellReuseIdentifier:@"CNTZAlbumCell"];
805 [weakSelf.view addSubview:self->_tableView]; 805 [weakSelf.view addSubview:self->_tableView];
806 } else { 806 } else {
807 [self->_tableView reloadData]; 807 [self->_tableView reloadData];
@@ -815,7 +815,7 @@ @@ -815,7 +815,7 @@
815 - (void)dealloc { 815 - (void)dealloc {
816 // NSLog(@"%@ dealloc",NSStringFromClass(self.class)); 816 // NSLog(@"%@ dealloc",NSStringFromClass(self.class));
817 817
818 - NSLog(@"相册_相簿_TZAlbumPickerController_dealloc"); 818 + NSLog(@"相册_相簿_CNTZAlbumPickerController_dealloc");
819 819
820 } 820 }
821 821
@@ -826,16 +826,16 @@ @@ -826,16 +826,16 @@
826 826
827 CGFloat top = 0; 827 CGFloat top = 0;
828 CGFloat tableViewHeight = 0; 828 CGFloat tableViewHeight = 0;
829 - CGFloat naviBarHeight = self.navigationController.navigationBar.tz_height; 829 + CGFloat naviBarHeight = self.navigationController.navigationBar.CNTZ_height;
830 BOOL isStatusBarHidden = [UIApplication sharedApplication].isStatusBarHidden; 830 BOOL isStatusBarHidden = [UIApplication sharedApplication].isStatusBarHidden;
831 if (self.navigationController.navigationBar.isTranslucent) { 831 if (self.navigationController.navigationBar.isTranslucent) {
832 top = naviBarHeight; 832 top = naviBarHeight;
833 - if (iOS7Later && !isStatusBarHidden) top += [TZCommonTools tz_statusBarHeight];  
834 - tableViewHeight = self.view.tz_height - top; 833 + if (iOS7Later && !isStatusBarHidden) top += [CNTZCommonTools CNTZ_statusBarHeight];
  834 + tableViewHeight = self.view.CNTZ_height - top;
835 } else { 835 } else {
836 - tableViewHeight = self.view.tz_height; 836 + tableViewHeight = self.view.CNTZ_height;
837 } 837 }
838 - _tableView.frame = CGRectMake(0, top, self.view.tz_width, tableViewHeight); 838 + _tableView.frame = CGRectMake(0, top, self.view.CNTZ_width, tableViewHeight);
839 } 839 }
840 840
841 #pragma mark - UITableViewDataSource && Delegate 841 #pragma mark - UITableViewDataSource && Delegate
@@ -845,8 +845,8 @@ @@ -845,8 +845,8 @@
845 } 845 }
846 846
847 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 847 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
848 - TZAlbumCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TZAlbumCell"];  
849 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 848 + CNTZAlbumCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CNTZAlbumCell"];
  849 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
850 cell.albumCellDidLayoutSubviewsBlock = imagePickerVc.albumCellDidLayoutSubviewsBlock; 850 cell.albumCellDidLayoutSubviewsBlock = imagePickerVc.albumCellDidLayoutSubviewsBlock;
851 cell.albumCellDidSetModelBlock = imagePickerVc.albumCellDidSetModelBlock; 851 cell.albumCellDidSetModelBlock = imagePickerVc.albumCellDidSetModelBlock;
852 cell.selectedCountButton.backgroundColor = imagePickerVc.iconThemeColor; 852 cell.selectedCountButton.backgroundColor = imagePickerVc.iconThemeColor;
@@ -856,9 +856,9 @@ @@ -856,9 +856,9 @@
856 } 856 }
857 857
858 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 858 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
859 - TZPhotoPickerController *photoPickerVc = [[TZPhotoPickerController alloc] init]; 859 + CNTZPhotoPickerController *photoPickerVc = [[CNTZPhotoPickerController alloc] init];
860 photoPickerVc.columnNumber = self.columnNumber; 860 photoPickerVc.columnNumber = self.columnNumber;
861 - TZAlbumModel *model = _albumArr[indexPath.row]; 861 + CNTZAlbumModel *model = _albumArr[indexPath.row];
862 photoPickerVc.model = model; 862 photoPickerVc.model = model;
863 [self.navigationController pushViewController:photoPickerVc animated:YES]; 863 [self.navigationController pushViewController:photoPickerVc animated:YES];
864 [tableView deselectRowAtIndexPath:indexPath animated:NO]; 864 [tableView deselectRowAtIndexPath:indexPath animated:NO];
@@ -872,7 +872,7 @@ @@ -872,7 +872,7 @@
872 @implementation UIImage (MyBundle) 872 @implementation UIImage (MyBundle)
873 873
874 + (UIImage *)imageNamedFromMyBundle:(NSString *)name { 874 + (UIImage *)imageNamedFromMyBundle:(NSString *)name {
875 - NSBundle *imageBundle = [NSBundle tz_imagePickerBundle]; 875 + NSBundle *imageBundle = [NSBundle CNTZ_imagePickerBundle];
876 name = [name stringByAppendingString:@"@2x"]; 876 name = [name stringByAppendingString:@"@2x"];
877 NSString *imagePath = [imageBundle pathForResource:name ofType:@"png"]; 877 NSString *imagePath = [imageBundle pathForResource:name ofType:@"png"];
878 UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 878 UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
@@ -887,9 +887,9 @@ @@ -887,9 +887,9 @@
887 @end 887 @end
888 888
889 889
890 -@implementation NSString (TzExtension) 890 +@implementation NSString (CNTZExtension)
891 891
892 -- (BOOL)tz_containsString:(NSString *)string { 892 +- (BOOL)CNTZ_containsString:(NSString *)string {
893 if (iOS8Later) { 893 if (iOS8Later) {
894 return [self containsString:string]; 894 return [self containsString:string];
895 } else { 895 } else {
@@ -900,7 +900,7 @@ @@ -900,7 +900,7 @@
900 900
901 #pragma clang diagnostic push 901 #pragma clang diagnostic push
902 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 902 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
903 -- (CGSize)tz_calculateSizeWithAttributes:(NSDictionary *)attributes maxSize:(CGSize)maxSize { 903 +- (CGSize)CNTZ_calculateSizeWithAttributes:(NSDictionary *)attributes maxSize:(CGSize)maxSize {
904 CGSize size; 904 CGSize size;
905 if (iOS7Later) { 905 if (iOS7Later) {
906 size = [self boundingRectWithSize:maxSize options:NSStringDrawingUsesFontLeading attributes:attributes context:nil].size; 906 size = [self boundingRectWithSize:maxSize options:NSStringDrawingUsesFontLeading attributes:attributes context:nil].size;
@@ -914,29 +914,23 @@ @@ -914,29 +914,23 @@
914 @end 914 @end
915 915
916 916
917 -@implementation TZCommonTools 917 +@implementation CNTZCommonTools
918 918
919 -+ (BOOL)tz_isIPhoneX { 919 ++ (BOOL)CNTZ_isIPhoneX {
920 920
921 return (CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(375, 812)) || 921 return (CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(375, 812)) ||
922 CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(812, 375)) || 922 CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(812, 375)) ||
923 CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(414, 896)) || 923 CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(414, 896)) ||
924 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(896, 414)) ||  
925 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(360, 780)) ||  
926 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(780, 360)) ||  
927 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(390, 844)) ||  
928 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(844, 390)) ||  
929 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(428, 926)) ||  
930 - CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(926, 428))); 924 + CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(896, 414)));
931 925
932 } 926 }
933 927
934 -+ (CGFloat)tz_statusBarHeight {  
935 - return [self tz_isIPhoneX] ? 44 : 20; 928 ++ (CGFloat)CNTZ_statusBarHeight {
  929 + return [self CNTZ_isIPhoneX] ? 44 : 20;
936 } 930 }
937 931
938 // 获得Info.plist数据字典 932 // 获得Info.plist数据字典
939 -+ (NSDictionary *)tz_getInfoDictionary { 933 ++ (NSDictionary *)CNTZ_getInfoDictionary {
940 NSDictionary *infoDict = [NSBundle mainBundle].localizedInfoDictionary; 934 NSDictionary *infoDict = [NSBundle mainBundle].localizedInfoDictionary;
941 if (!infoDict || !infoDict.count) { 935 if (!infoDict || !infoDict.count) {
942 infoDict = [NSBundle mainBundle].infoDictionary; 936 infoDict = [NSBundle mainBundle].infoDictionary;
@@ -950,14 +944,14 @@ @@ -950,14 +944,14 @@
950 @end 944 @end
951 945
952 946
953 -@implementation TZImagePickerConfig 947 +@implementation CNTZImagePickerConfig
954 948
955 + (instancetype)sharedInstance { 949 + (instancetype)sharedInstance {
956 static dispatch_once_t onceToken; 950 static dispatch_once_t onceToken;
957 - static TZImagePickerConfig *config = nil; 951 + static CNTZImagePickerConfig *config = nil;
958 dispatch_once(&onceToken, ^{ 952 dispatch_once(&onceToken, ^{
959 if (config == nil) { 953 if (config == nil) {
960 - config = [[TZImagePickerConfig alloc] init]; 954 + config = [[CNTZImagePickerConfig alloc] init];
961 config.preferredLanguage = nil; 955 config.preferredLanguage = nil;
962 config.gifPreviewMaxImagesCount = 200; 956 config.gifPreviewMaxImagesCount = 200;
963 } 957 }
@@ -980,7 +974,7 @@ @@ -980,7 +974,7 @@
980 } else { 974 } else {
981 preferredLanguage = @"en"; 975 preferredLanguage = @"en";
982 } 976 }
983 - _languageBundle = [NSBundle bundleWithPath:[[NSBundle tz_imagePickerBundle] pathForResource:preferredLanguage ofType:@"lproj"]]; 977 + _languageBundle = [NSBundle bundleWithPath:[[NSBundle CNTZ_imagePickerBundle] pathForResource:preferredLanguage ofType:@"lproj"]];
984 } 978 }
985 979
986 @end 980 @end
CNLiveImagePickerController/Classes/TZLocationManager.h renamed to CNLiveImagePickerController/Classes/CNTZLocationManager.h
1 // 1 //
2 -// TZLocationManager.h  
3 -// TZImagePickerController 2 +// CNTZLocationManager.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 2017/06/03. 5 // Created by 谭真 on 2017/06/03.
6 // Copyright © 2017年 谭真. All rights reserved. 6 // Copyright © 2017年 谭真. All rights reserved.
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 #import <Foundation/Foundation.h> 10 #import <Foundation/Foundation.h>
11 #import <CoreLocation/CoreLocation.h> 11 #import <CoreLocation/CoreLocation.h>
12 12
13 -@interface TZLocationManager : NSObject 13 +@interface CNTZLocationManager : NSObject
14 14
15 + (instancetype)manager; 15 + (instancetype)manager;
16 16
CNLiveImagePickerController/Classes/TZLocationManager.m renamed to CNLiveImagePickerController/Classes/CNTZLocationManager.m
1 // 1 //
2 -// TZLocationManager.m  
3 -// TZImagePickerController 2 +// CNTZLocationManager.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 2017/06/03. 5 // Created by 谭真 on 2017/06/03.
6 // Copyright © 2017年 谭真. All rights reserved. 6 // Copyright © 2017年 谭真. All rights reserved.
7 // 定位管理类 7 // 定位管理类
8 8
9 -#import "TZLocationManager.h"  
10 -#import "TZImagePickerController.h" 9 +#import "CNTZLocationManager.h"
  10 +#import "CNTZImagePickerController.h"
11 11
12 -@interface TZLocationManager ()<CLLocationManagerDelegate> 12 +@interface CNTZLocationManager ()<CLLocationManagerDelegate>
13 @property (nonatomic, strong) CLLocationManager *locationManager; 13 @property (nonatomic, strong) CLLocationManager *locationManager;
14 /// 定位成功的回调block 14 /// 定位成功的回调block
15 @property (nonatomic, copy) void (^successBlock)(NSArray<CLLocation *> *); 15 @property (nonatomic, copy) void (^successBlock)(NSArray<CLLocation *> *);
@@ -19,10 +19,10 @@ @@ -19,10 +19,10 @@
19 @property (nonatomic, copy) void (^failureBlock)(NSError *error); 19 @property (nonatomic, copy) void (^failureBlock)(NSError *error);
20 @end 20 @end
21 21
22 -@implementation TZLocationManager 22 +@implementation CNTZLocationManager
23 23
24 + (instancetype)manager { 24 + (instancetype)manager {
25 - static TZLocationManager *manager; 25 + static CNTZLocationManager *manager;
26 static dispatch_once_t onceToken; 26 static dispatch_once_t onceToken;
27 dispatch_once(&onceToken, ^{ 27 dispatch_once(&onceToken, ^{
28 manager = [[self alloc] init]; 28 manager = [[self alloc] init];
CNLiveImagePickerController/Classes/TZPhotoPickerController.h renamed to CNLiveImagePickerController/Classes/CNTZPhotoPickerController.h
1 // 1 //
2 -// TZPhotoPickerController.h  
3 -// TZImagePickerController 2 +// CNTZPhotoPickerController.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
@@ -8,15 +8,15 @@ @@ -8,15 +8,15 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@class TZAlbumModel;  
12 -@interface TZPhotoPickerController : UIViewController 11 +@class CNTZAlbumModel;
  12 +@interface CNTZPhotoPickerController : UIViewController
13 13
14 @property (nonatomic, assign) BOOL isFirstAppear; 14 @property (nonatomic, assign) BOOL isFirstAppear;
15 @property (nonatomic, assign) NSInteger columnNumber; 15 @property (nonatomic, assign) NSInteger columnNumber;
16 -@property (nonatomic, strong) TZAlbumModel *model; 16 +@property (nonatomic, strong) CNTZAlbumModel *model;
17 @end 17 @end
18 18
19 19
20 -@interface TZCollectionView : UICollectionView 20 +@interface CNTZCollectionView : UICollectionView
21 21
22 @end 22 @end
CNLiveImagePickerController/Classes/TZPhotoPickerController.m renamed to CNLiveImagePickerController/Classes/CNTZPhotoPickerController.m
1 // 1 //
2 -// TZPhotoPickerController.m  
3 -// TZImagePickerController 2 +// CNTZPhotoPickerController.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZPhotoPickerController.h"  
10 -#import "TZImagePickerController.h"  
11 -#import "TZPhotoPreviewController.h"  
12 -#import "TZAssetCell.h"  
13 -#import "TZAssetModel.h"  
14 -#import "UIView+TZLayout.h"  
15 -#import "TZImageManager.h"  
16 -#import "TZVideoPlayerController.h"  
17 -#import "TZGifPhotoPreviewController.h"  
18 -#import "TZLocationManager.h" 9 +#import "CNTZPhotoPickerController.h"
  10 +#import "CNTZImagePickerController.h"
  11 +#import "CNTZPhotoPreviewController.h"
  12 +#import "CNTZAssetCell.h"
  13 +#import "CNTZAssetModel.h"
  14 +#import "UIView+CNTZLayout.h"
  15 +#import "CNTZImageManager.h"
  16 +#import "CNTZVideoPlayerController.h"
  17 +#import "CNTZGifPhotoPreviewController.h"
  18 +#import "CNTZLocationManager.h"
19 #import <MobileCoreServices/MobileCoreServices.h> 19 #import <MobileCoreServices/MobileCoreServices.h>
20 #import <AssetsLibrary/AssetsLibrary.h>///lxg 20 #import <AssetsLibrary/AssetsLibrary.h>///lxg
21 21
@@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
86 86
87 @end 87 @end
88 88
89 -@interface TZPhotoPickerController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIAlertViewDelegate> { 89 +@interface CNTZPhotoPickerController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIAlertViewDelegate> {
90 NSMutableArray *_models; 90 NSMutableArray *_models;
91 91
92 UIView *_bottomToolBar; 92 UIView *_bottomToolBar;
@@ -107,7 +107,7 @@ @@ -107,7 +107,7 @@
107 } 107 }
108 @property CGRect previousPreheatRect; 108 @property CGRect previousPreheatRect;
109 @property (nonatomic, assign) BOOL isSelectOriginalPhoto; 109 @property (nonatomic, assign) BOOL isSelectOriginalPhoto;
110 -@property (nonatomic, strong) TZCollectionView *collectionView; 110 +@property (nonatomic, strong) CNTZCollectionView *collectionView;
111 @property (strong, nonatomic) UICollectionViewFlowLayout *layout; 111 @property (strong, nonatomic) UICollectionViewFlowLayout *layout;
112 @property (nonatomic, strong) UIImagePickerController *imagePickerVc; 112 @property (nonatomic, strong) UIImagePickerController *imagePickerVc;
113 @property (strong, nonatomic) CLLocation *location; 113 @property (strong, nonatomic) CLLocation *location;
@@ -117,7 +117,7 @@ @@ -117,7 +117,7 @@
117 static CGSize AssetGridThumbnailSize; 117 static CGSize AssetGridThumbnailSize;
118 static CGFloat itemMargin = 5; 118 static CGFloat itemMargin = 5;
119 119
120 -@implementation TZPhotoPickerController 120 +@implementation CNTZPhotoPickerController
121 121
122 #pragma clang diagnostic push 122 #pragma clang diagnostic push
123 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 123 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -130,15 +130,15 @@ static CGFloat itemMargin = 5; @@ -130,15 +130,15 @@ static CGFloat itemMargin = 5;
130 _imagePickerVc.navigationBar.barTintColor = self.navigationController.navigationBar.barTintColor; 130 _imagePickerVc.navigationBar.barTintColor = self.navigationController.navigationBar.barTintColor;
131 } 131 }
132 _imagePickerVc.navigationBar.tintColor = self.navigationController.navigationBar.tintColor; 132 _imagePickerVc.navigationBar.tintColor = self.navigationController.navigationBar.tintColor;
133 - UIBarButtonItem *tzBarItem, *BarItem; 133 + UIBarButtonItem *CNTZBarItem, *BarItem;
134 if (@available(iOS 9, *)) { 134 if (@available(iOS 9, *)) {
135 - tzBarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[TZImagePickerController class]]]; 135 + CNTZBarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[CNTZImagePickerController class]]];
136 BarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UIImagePickerController class]]]; 136 BarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UIImagePickerController class]]];
137 } else { 137 } else {
138 - tzBarItem = [UIBarButtonItem appearanceWhenContainedIn:[TZImagePickerController class], nil]; 138 + CNTZBarItem = [UIBarButtonItem appearanceWhenContainedIn:[CNTZImagePickerController class], nil];
139 BarItem = [UIBarButtonItem appearanceWhenContainedIn:[UIImagePickerController class], nil]; 139 BarItem = [UIBarButtonItem appearanceWhenContainedIn:[UIImagePickerController class], nil];
140 } 140 }
141 - NSDictionary *titleTextAttributes = [tzBarItem titleTextAttributesForState:UIControlStateNormal]; 141 + NSDictionary *titleTextAttributes = [CNTZBarItem titleTextAttributesForState:UIControlStateNormal];
142 [BarItem setTitleTextAttributes:titleTextAttributes forState:UIControlStateNormal]; 142 [BarItem setTitleTextAttributes:titleTextAttributes forState:UIControlStateNormal];
143 } 143 }
144 return _imagePickerVc; 144 return _imagePickerVc;
@@ -148,35 +148,35 @@ static CGFloat itemMargin = 5; @@ -148,35 +148,35 @@ static CGFloat itemMargin = 5;
148 [super viewDidLoad]; 148 [super viewDidLoad];
149 _isClickDone = NO; 149 _isClickDone = NO;
150 self.isFirstAppear = YES; 150 self.isFirstAppear = YES;
151 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
152 - _isSelectOriginalPhoto = tzImagePickerVc.isSelectOriginalPhoto; 151 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  152 + _isSelectOriginalPhoto = CNTZImagePickerVc.isSelectOriginalPhoto;
153 _shouldScrollToBottom = YES; 153 _shouldScrollToBottom = YES;
154 self.view.backgroundColor = [UIColor whiteColor]; 154 self.view.backgroundColor = [UIColor whiteColor];
155 self.navigationItem.title = _model.name; 155 self.navigationItem.title = _model.name;
156 - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:tzImagePickerVc.cancelBtnTitleStr style:UIBarButtonItemStylePlain target:tzImagePickerVc action:@selector(cancelButtonClick)];  
157 - if (tzImagePickerVc.navLeftBarButtonSettingBlock) { 156 + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:CNTZImagePickerVc.cancelBtnTitleStr style:UIBarButtonItemStylePlain target:CNTZImagePickerVc action:@selector(cancelButtonClick)];
  157 + if (CNTZImagePickerVc.navLeftBarButtonSettingBlock) {
158 UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom]; 158 UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
159 leftButton.frame = CGRectMake(0, 0, 44, 44); 159 leftButton.frame = CGRectMake(0, 0, 44, 44);
160 [leftButton addTarget:self action:@selector(navLeftBarButtonClick) forControlEvents:UIControlEventTouchUpInside]; 160 [leftButton addTarget:self action:@selector(navLeftBarButtonClick) forControlEvents:UIControlEventTouchUpInside];
161 - tzImagePickerVc.navLeftBarButtonSettingBlock(leftButton); 161 + CNTZImagePickerVc.navLeftBarButtonSettingBlock(leftButton);
162 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton]; 162 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton];
163 - } else if (tzImagePickerVc.childViewControllers.count) {  
164 - [tzImagePickerVc.childViewControllers firstObject].navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:[NSBundle tz_localizedStringForKey:@"Back"] style:UIBarButtonItemStylePlain target:nil action:nil]; 163 + } else if (CNTZImagePickerVc.childViewControllers.count) {
  164 + [CNTZImagePickerVc.childViewControllers firstObject].navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Back"] style:UIBarButtonItemStylePlain target:nil action:nil];
165 } 165 }
166 - _showTakePhotoBtn = _model.isCameraRoll && ((tzImagePickerVc.allowTakePicture && tzImagePickerVc.allowPickingImage) || (tzImagePickerVc.allowTakeVideo && tzImagePickerVc.allowPickingVideo)); 166 + _showTakePhotoBtn = _model.isCameraRoll && ((CNTZImagePickerVc.allowTakePicture && CNTZImagePickerVc.allowPickingImage) || (CNTZImagePickerVc.allowTakeVideo && CNTZImagePickerVc.allowPickingVideo));
167 // [self resetCachedAssets]; 167 // [self resetCachedAssets];
168 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeStatusBarOrientationNotification:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil]; 168 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeStatusBarOrientationNotification:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
169 } 169 }
170 170
171 - (void)fetchAssetModels { 171 - (void)fetchAssetModels {
172 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 172 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
173 if (_isFirstAppear && !_model.models.count) { 173 if (_isFirstAppear && !_model.models.count) {
174 - [tzImagePickerVc showProgressHUD]; 174 + [CNTZImagePickerVc showProgressHUD];
175 } 175 }
176 __weak typeof(self) weakSelf = self; 176 __weak typeof(self) weakSelf = self;
177 dispatch_async(dispatch_get_global_queue(0, 0), ^{ 177 dispatch_async(dispatch_get_global_queue(0, 0), ^{
178 - if (!tzImagePickerVc.sortAscendingByModificationDate && self->_isFirstAppear && iOS8Later && self->_model.isCameraRoll) {  
179 - [[TZImageManager manager] getCameraRollAlbum:tzImagePickerVc.allowPickingVideo allowPickingImage:tzImagePickerVc.allowPickingImage needFetchAssets:YES completion:^(TZAlbumModel *model) { 178 + if (!CNTZImagePickerVc.sortAscendingByModificationDate && self->_isFirstAppear && iOS8Later && self->_model.isCameraRoll) {
  179 + [[CNTZImageManager manager] getCameraRollAlbum:CNTZImagePickerVc.allowPickingVideo allowPickingImage:CNTZImagePickerVc.allowPickingImage needFetchAssets:YES completion:^(CNTZAlbumModel *model) {
180 self->_model = model; 180 self->_model = model;
181 self->_models = [NSMutableArray arrayWithArray:self->_model.models]; 181 self->_models = [NSMutableArray arrayWithArray:self->_model.models];
182 [weakSelf initSubviews]; 182 [weakSelf initSubviews];
@@ -184,7 +184,7 @@ static CGFloat itemMargin = 5; @@ -184,7 +184,7 @@ static CGFloat itemMargin = 5;
184 } else { 184 } else {
185 if (self->_showTakePhotoBtn || !iOS8Later || self->_isFirstAppear) { 185 if (self->_showTakePhotoBtn || !iOS8Later || self->_isFirstAppear) {
186 __weak typeof(self) weakSelf = self; 186 __weak typeof(self) weakSelf = self;
187 - [[TZImageManager manager] getAssetsFromFetchResult:self->_model.result completion:^(NSArray<TZAssetModel *> *models) { 187 + [[CNTZImageManager manager] getAssetsFromFetchResult:self->_model.result completion:^(NSArray<CNTZAssetModel *> *models) {
188 self->_models = [NSMutableArray arrayWithArray:models]; 188 self->_models = [NSMutableArray arrayWithArray:models];
189 [weakSelf initSubviews]; 189 [weakSelf initSubviews];
190 }]; 190 }];
@@ -199,8 +199,8 @@ static CGFloat itemMargin = 5; @@ -199,8 +199,8 @@ static CGFloat itemMargin = 5;
199 - (void)initSubviews { 199 - (void)initSubviews {
200 __weak typeof(self) weakSelf = self; 200 __weak typeof(self) weakSelf = self;
201 dispatch_async(dispatch_get_main_queue(), ^{ 201 dispatch_async(dispatch_get_main_queue(), ^{
202 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)weakSelf.navigationController;  
203 - [tzImagePickerVc hideProgressHUD]; 202 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)weakSelf.navigationController;
  203 + [CNTZImagePickerVc hideProgressHUD];
204 204
205 [weakSelf checkSelectedModels]; 205 [weakSelf checkSelectedModels];
206 [weakSelf configCollectionView]; 206 [weakSelf configCollectionView];
@@ -213,8 +213,8 @@ static CGFloat itemMargin = 5; @@ -213,8 +213,8 @@ static CGFloat itemMargin = 5;
213 213
214 - (void)viewWillDisappear:(BOOL)animated { 214 - (void)viewWillDisappear:(BOOL)animated {
215 [super viewWillDisappear:animated]; 215 [super viewWillDisappear:animated];
216 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
217 - tzImagePickerVc.isSelectOriginalPhoto = _isSelectOriginalPhoto; 216 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  217 + CNTZImagePickerVc.isSelectOriginalPhoto = _isSelectOriginalPhoto;
218 } 218 }
219 219
220 - (BOOL)prefersStatusBarHidden { 220 - (BOOL)prefersStatusBarHidden {
@@ -223,7 +223,7 @@ static CGFloat itemMargin = 5; @@ -223,7 +223,7 @@ static CGFloat itemMargin = 5;
223 223
224 - (void)configCollectionView { 224 - (void)configCollectionView {
225 _layout = [[UICollectionViewFlowLayout alloc] init]; 225 _layout = [[UICollectionViewFlowLayout alloc] init];
226 - _collectionView = [[TZCollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:_layout]; 226 + _collectionView = [[CNTZCollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:_layout];
227 _collectionView.backgroundColor = [UIColor whiteColor]; 227 _collectionView.backgroundColor = [UIColor whiteColor];
228 _collectionView.dataSource = self; 228 _collectionView.dataSource = self;
229 _collectionView.delegate = self; 229 _collectionView.delegate = self;
@@ -231,13 +231,13 @@ static CGFloat itemMargin = 5; @@ -231,13 +231,13 @@ static CGFloat itemMargin = 5;
231 _collectionView.contentInset = UIEdgeInsetsMake(itemMargin, itemMargin, itemMargin, itemMargin); 231 _collectionView.contentInset = UIEdgeInsetsMake(itemMargin, itemMargin, itemMargin, itemMargin);
232 232
233 if (_showTakePhotoBtn) { 233 if (_showTakePhotoBtn) {
234 - _collectionView.contentSize = CGSizeMake(self.view.tz_width, ((_model.count + self.columnNumber) / self.columnNumber) * self.view.tz_width); 234 + _collectionView.contentSize = CGSizeMake(self.view.CNTZ_width, ((_model.count + self.columnNumber) / self.columnNumber) * self.view.CNTZ_width);
235 } else { 235 } else {
236 - _collectionView.contentSize = CGSizeMake(self.view.tz_width, ((_model.count + self.columnNumber - 1) / self.columnNumber) * self.view.tz_width); 236 + _collectionView.contentSize = CGSizeMake(self.view.CNTZ_width, ((_model.count + self.columnNumber - 1) / self.columnNumber) * self.view.CNTZ_width);
237 } 237 }
238 [self.view addSubview:_collectionView]; 238 [self.view addSubview:_collectionView];
239 - [_collectionView registerClass:[TZAssetCell class] forCellWithReuseIdentifier:@"TZAssetCell"];  
240 - [_collectionView registerClass:[TZAssetCameraCell class] forCellWithReuseIdentifier:@"TZAssetCameraCell"]; 239 + [_collectionView registerClass:[CNTZAssetCell class] forCellWithReuseIdentifier:@"CNTZAssetCell"];
  240 + [_collectionView registerClass:[CNTZAssetCameraCell class] forCellWithReuseIdentifier:@"CNTZAssetCameraCell"];
241 } 241 }
242 242
243 - (void)viewWillAppear:(BOOL)animated { 243 - (void)viewWillAppear:(BOOL)animated {
@@ -263,8 +263,8 @@ static CGFloat itemMargin = 5; @@ -263,8 +263,8 @@ static CGFloat itemMargin = 5;
263 } 263 }
264 264
265 - (void)configBottomToolBar { 265 - (void)configBottomToolBar {
266 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
267 - if (!tzImagePickerVc.showSelectBtn) return; 266 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  267 + if (!CNTZImagePickerVc.showSelectBtn) return;
268 268
269 _bottomToolBar = [[UIView alloc] initWithFrame:CGRectZero]; 269 _bottomToolBar = [[UIView alloc] initWithFrame:CGRectZero];
270 CGFloat rgb = 253 / 255.0; 270 CGFloat rgb = 253 / 255.0;
@@ -273,27 +273,27 @@ static CGFloat itemMargin = 5; @@ -273,27 +273,27 @@ static CGFloat itemMargin = 5;
273 _previewButton = [UIButton buttonWithType:UIButtonTypeCustom]; 273 _previewButton = [UIButton buttonWithType:UIButtonTypeCustom];
274 [_previewButton addTarget:self action:@selector(previewButtonClick) forControlEvents:UIControlEventTouchUpInside]; 274 [_previewButton addTarget:self action:@selector(previewButtonClick) forControlEvents:UIControlEventTouchUpInside];
275 _previewButton.titleLabel.font = [UIFont systemFontOfSize:16]; 275 _previewButton.titleLabel.font = [UIFont systemFontOfSize:16];
276 - [_previewButton setTitle:tzImagePickerVc.previewBtnTitleStr forState:UIControlStateNormal];  
277 - [_previewButton setTitle:tzImagePickerVc.previewBtnTitleStr forState:UIControlStateDisabled]; 276 + [_previewButton setTitle:CNTZImagePickerVc.previewBtnTitleStr forState:UIControlStateNormal];
  277 + [_previewButton setTitle:CNTZImagePickerVc.previewBtnTitleStr forState:UIControlStateDisabled];
278 [_previewButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 278 [_previewButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
279 [_previewButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateDisabled]; 279 [_previewButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateDisabled];
280 - _previewButton.enabled = tzImagePickerVc.selectedModels.count; 280 + _previewButton.enabled = CNTZImagePickerVc.selectedModels.count;
281 281
282 - if (tzImagePickerVc.allowPickingOriginalPhoto) { 282 + if (CNTZImagePickerVc.allowPickingOriginalPhoto) {
283 _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom]; 283 _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom];
284 _originalPhotoButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0); 284 _originalPhotoButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
285 [_originalPhotoButton addTarget:self action:@selector(originalPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside]; 285 [_originalPhotoButton addTarget:self action:@selector(originalPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside];
286 _originalPhotoButton.titleLabel.font = [UIFont systemFontOfSize:16]; 286 _originalPhotoButton.titleLabel.font = [UIFont systemFontOfSize:16];
287 - [_originalPhotoButton setTitle:tzImagePickerVc.fullImageBtnTitleStr forState:UIControlStateNormal];  
288 - [_originalPhotoButton setTitle:tzImagePickerVc.fullImageBtnTitleStr forState:UIControlStateSelected]; 287 + [_originalPhotoButton setTitle:CNTZImagePickerVc.fullImageBtnTitleStr forState:UIControlStateNormal];
  288 + [_originalPhotoButton setTitle:CNTZImagePickerVc.fullImageBtnTitleStr forState:UIControlStateSelected];
289 [_originalPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal]; 289 [_originalPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
290 [_originalPhotoButton setTitleColor:[UIColor blackColor] forState:UIControlStateSelected]; 290 [_originalPhotoButton setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
291 - [_originalPhotoButton setImage:tzImagePickerVc.photoOriginDefImage forState:UIControlStateNormal];  
292 - [_originalPhotoButton setImage:tzImagePickerVc.photoOriginSelImage forState:UIControlStateSelected]; 291 + [_originalPhotoButton setImage:CNTZImagePickerVc.photoOriginDefImage forState:UIControlStateNormal];
  292 + [_originalPhotoButton setImage:CNTZImagePickerVc.photoOriginSelImage forState:UIControlStateSelected];
293 _originalPhotoButton.imageView.clipsToBounds = YES; 293 _originalPhotoButton.imageView.clipsToBounds = YES;
294 _originalPhotoButton.imageView.contentMode = UIViewContentModeScaleAspectFit; 294 _originalPhotoButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
295 _originalPhotoButton.selected = _isSelectOriginalPhoto; 295 _originalPhotoButton.selected = _isSelectOriginalPhoto;
296 - _originalPhotoButton.enabled = tzImagePickerVc.selectedModels.count > 0; 296 + _originalPhotoButton.enabled = CNTZImagePickerVc.selectedModels.count > 0;
297 297
298 _originalPhotoLabel = [[UILabel alloc] init]; 298 _originalPhotoLabel = [[UILabel alloc] init];
299 _originalPhotoLabel.textAlignment = NSTextAlignmentLeft; 299 _originalPhotoLabel.textAlignment = NSTextAlignmentLeft;
@@ -305,14 +305,14 @@ static CGFloat itemMargin = 5; @@ -305,14 +305,14 @@ static CGFloat itemMargin = 5;
305 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; 305 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
306 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16]; 306 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
307 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside]; 307 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside];
308 - [_doneButton setTitle:tzImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];  
309 - [_doneButton setTitle:tzImagePickerVc.doneBtnTitleStr forState:UIControlStateDisabled];  
310 - [_doneButton setTitleColor:tzImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal];  
311 - [_doneButton setTitleColor:tzImagePickerVc.oKButtonTitleColorDisabled forState:UIControlStateDisabled];  
312 - _doneButton.enabled = tzImagePickerVc.selectedModels.count || tzImagePickerVc.alwaysEnableDoneBtn; 308 + [_doneButton setTitle:CNTZImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];
  309 + [_doneButton setTitle:CNTZImagePickerVc.doneBtnTitleStr forState:UIControlStateDisabled];
  310 + [_doneButton setTitleColor:CNTZImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal];
  311 + [_doneButton setTitleColor:CNTZImagePickerVc.oKButtonTitleColorDisabled forState:UIControlStateDisabled];
  312 + _doneButton.enabled = CNTZImagePickerVc.selectedModels.count || CNTZImagePickerVc.alwaysEnableDoneBtn;
313 313
314 - _numberImageView = [[UIImageView alloc] initWithImage:tzImagePickerVc.photoNumberIconImage];  
315 - _numberImageView.hidden = tzImagePickerVc.selectedModels.count <= 0; 314 + _numberImageView = [[UIImageView alloc] initWithImage:CNTZImagePickerVc.photoNumberIconImage];
  315 + _numberImageView.hidden = CNTZImagePickerVc.selectedModels.count <= 0;
316 _numberImageView.clipsToBounds = YES; 316 _numberImageView.clipsToBounds = YES;
317 _numberImageView.contentMode = UIViewContentModeScaleAspectFit; 317 _numberImageView.contentMode = UIViewContentModeScaleAspectFit;
318 _numberImageView.backgroundColor = [UIColor clearColor]; 318 _numberImageView.backgroundColor = [UIColor clearColor];
@@ -321,13 +321,13 @@ static CGFloat itemMargin = 5; @@ -321,13 +321,13 @@ static CGFloat itemMargin = 5;
321 _numberLabel.font = [UIFont systemFontOfSize:15]; 321 _numberLabel.font = [UIFont systemFontOfSize:15];
322 _numberLabel.textColor = [UIColor whiteColor]; 322 _numberLabel.textColor = [UIColor whiteColor];
323 _numberLabel.textAlignment = NSTextAlignmentCenter; 323 _numberLabel.textAlignment = NSTextAlignmentCenter;
324 - _numberLabel.text = [NSString stringWithFormat:@"%zd",tzImagePickerVc.selectedModels.count];  
325 - _numberLabel.hidden = tzImagePickerVc.selectedModels.count <= 0; 324 + _numberLabel.text = [NSString stringWithFormat:@"%zd",CNTZImagePickerVc.selectedModels.count];
  325 + _numberLabel.hidden = CNTZImagePickerVc.selectedModels.count <= 0;
326 _numberLabel.backgroundColor = [UIColor clearColor]; 326 _numberLabel.backgroundColor = [UIColor clearColor];
327 #pragma mark - 添加: 选择图片个数显示(LXG) 327 #pragma mark - 添加: 选择图片个数显示(LXG)
328 _numberImageView.hidden = YES; 328 _numberImageView.hidden = YES;
329 _numberLabel.hidden = YES; 329 _numberLabel.hidden = YES;
330 - [_doneButton setTitle:[NSString stringWithFormat:@"完成(%zd)",tzImagePickerVc.selectedModels.count] forState:UIControlStateNormal]; 330 + [_doneButton setTitle:[NSString stringWithFormat:@"完成(%zd)",CNTZImagePickerVc.selectedModels.count] forState:UIControlStateNormal];
331 331
332 _divideLine = [[UIView alloc] init]; 332 _divideLine = [[UIView alloc] init];
333 CGFloat rgb2 = 222 / 255.0; 333 CGFloat rgb2 = 222 / 255.0;
@@ -342,8 +342,8 @@ static CGFloat itemMargin = 5; @@ -342,8 +342,8 @@ static CGFloat itemMargin = 5;
342 [self.view addSubview:_bottomToolBar]; 342 [self.view addSubview:_bottomToolBar];
343 [_originalPhotoButton addSubview:_originalPhotoLabel]; 343 [_originalPhotoButton addSubview:_originalPhotoLabel];
344 344
345 - if (tzImagePickerVc.photoPickerPageUIConfigBlock) {  
346 - tzImagePickerVc.photoPickerPageUIConfigBlock(_collectionView, _bottomToolBar, _previewButton, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel, _divideLine); 345 + if (CNTZImagePickerVc.photoPickerPageUIConfigBlock) {
  346 + CNTZImagePickerVc.photoPickerPageUIConfigBlock(_collectionView, _bottomToolBar, _previewButton, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel, _divideLine);
347 } 347 }
348 } 348 }
349 349
@@ -352,22 +352,22 @@ static CGFloat itemMargin = 5; @@ -352,22 +352,22 @@ static CGFloat itemMargin = 5;
352 - (void)viewDidLayoutSubviews { 352 - (void)viewDidLayoutSubviews {
353 [super viewDidLayoutSubviews]; 353 [super viewDidLayoutSubviews];
354 354
355 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 355 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
356 356
357 CGFloat top = 0; 357 CGFloat top = 0;
358 CGFloat collectionViewHeight = 0; 358 CGFloat collectionViewHeight = 0;
359 - CGFloat naviBarHeight = self.navigationController.navigationBar.tz_height; 359 + CGFloat naviBarHeight = self.navigationController.navigationBar.CNTZ_height;
360 BOOL isStatusBarHidden = [UIApplication sharedApplication].isStatusBarHidden; 360 BOOL isStatusBarHidden = [UIApplication sharedApplication].isStatusBarHidden;
361 - CGFloat toolBarHeight = [TZCommonTools tz_isIPhoneX] ? 50 + (83 - 49) : 50; 361 + CGFloat toolBarHeight = [CNTZCommonTools CNTZ_isIPhoneX] ? 50 + (83 - 49) : 50;
362 if (self.navigationController.navigationBar.isTranslucent) { 362 if (self.navigationController.navigationBar.isTranslucent) {
363 top = naviBarHeight; 363 top = naviBarHeight;
364 - if (iOS7Later && !isStatusBarHidden) top += [TZCommonTools tz_statusBarHeight];  
365 - collectionViewHeight = tzImagePickerVc.showSelectBtn ? self.view.tz_height - toolBarHeight - top : self.view.tz_height - top;; 364 + if (iOS7Later && !isStatusBarHidden) top += [CNTZCommonTools CNTZ_statusBarHeight];
  365 + collectionViewHeight = CNTZImagePickerVc.showSelectBtn ? self.view.CNTZ_height - toolBarHeight - top : self.view.CNTZ_height - top;;
366 } else { 366 } else {
367 - collectionViewHeight = tzImagePickerVc.showSelectBtn ? self.view.tz_height - toolBarHeight : self.view.tz_height; 367 + collectionViewHeight = CNTZImagePickerVc.showSelectBtn ? self.view.CNTZ_height - toolBarHeight : self.view.CNTZ_height;
368 } 368 }
369 - _collectionView.frame = CGRectMake(0, top, self.view.tz_width, collectionViewHeight);  
370 - CGFloat itemWH = (self.view.tz_width - (self.columnNumber + 1) * itemMargin) / self.columnNumber; 369 + _collectionView.frame = CGRectMake(0, top, self.view.CNTZ_width, collectionViewHeight);
  370 + CGFloat itemWH = (self.view.CNTZ_width - (self.columnNumber + 1) * itemMargin) / self.columnNumber;
371 _layout.itemSize = CGSizeMake(itemWH, itemWH); 371 _layout.itemSize = CGSizeMake(itemWH, itemWH);
372 _layout.minimumInteritemSpacing = itemMargin; 372 _layout.minimumInteritemSpacing = itemMargin;
373 _layout.minimumLineSpacing = itemMargin; 373 _layout.minimumLineSpacing = itemMargin;
@@ -379,35 +379,35 @@ static CGFloat itemMargin = 5; @@ -379,35 +379,35 @@ static CGFloat itemMargin = 5;
379 379
380 CGFloat toolBarTop = 0; 380 CGFloat toolBarTop = 0;
381 if (!self.navigationController.navigationBar.isHidden) { 381 if (!self.navigationController.navigationBar.isHidden) {
382 - toolBarTop = self.view.tz_height - toolBarHeight; 382 + toolBarTop = self.view.CNTZ_height - toolBarHeight;
383 } else { 383 } else {
384 CGFloat navigationHeight = naviBarHeight; 384 CGFloat navigationHeight = naviBarHeight;
385 - if (iOS7Later) navigationHeight += [TZCommonTools tz_statusBarHeight];  
386 - toolBarTop = self.view.tz_height - toolBarHeight - navigationHeight; 385 + if (iOS7Later) navigationHeight += [CNTZCommonTools CNTZ_statusBarHeight];
  386 + toolBarTop = self.view.CNTZ_height - toolBarHeight - navigationHeight;
387 } 387 }
388 - _bottomToolBar.frame = CGRectMake(0, toolBarTop, self.view.tz_width, toolBarHeight);  
389 - CGFloat previewWidth = [tzImagePickerVc.previewBtnTitleStr tz_calculateSizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16]} maxSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width + 2;  
390 - if (!tzImagePickerVc.allowPreview) { 388 + _bottomToolBar.frame = CGRectMake(0, toolBarTop, self.view.CNTZ_width, toolBarHeight);
  389 + CGFloat previewWidth = [CNTZImagePickerVc.previewBtnTitleStr CNTZ_calculateSizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16]} maxSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width + 2;
  390 + if (!CNTZImagePickerVc.allowPreview) {
391 previewWidth = 0.0; 391 previewWidth = 0.0;
392 } 392 }
393 _previewButton.frame = CGRectMake(10, 3, previewWidth, 44); 393 _previewButton.frame = CGRectMake(10, 3, previewWidth, 44);
394 - _previewButton.tz_width = !tzImagePickerVc.showSelectBtn ? 0 : previewWidth;  
395 - if (tzImagePickerVc.allowPickingOriginalPhoto) {  
396 - CGFloat fullImageWidth = [tzImagePickerVc.fullImageBtnTitleStr tz_calculateSizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} maxSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width; 394 + _previewButton.CNTZ_width = !CNTZImagePickerVc.showSelectBtn ? 0 : previewWidth;
  395 + if (CNTZImagePickerVc.allowPickingOriginalPhoto) {
  396 + CGFloat fullImageWidth = [CNTZImagePickerVc.fullImageBtnTitleStr CNTZ_calculateSizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} maxSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width;
397 _originalPhotoButton.frame = CGRectMake(CGRectGetMaxX(_previewButton.frame), 0, fullImageWidth + 56, 50); 397 _originalPhotoButton.frame = CGRectMake(CGRectGetMaxX(_previewButton.frame), 0, fullImageWidth + 56, 50);
398 _originalPhotoLabel.frame = CGRectMake(fullImageWidth + 46, 0, 80, 50); 398 _originalPhotoLabel.frame = CGRectMake(fullImageWidth + 46, 0, 80, 50);
399 } 399 }
400 [_doneButton sizeToFit]; 400 [_doneButton sizeToFit];
401 - _doneButton.frame = CGRectMake(self.view.tz_width - 60 - 12, 0, 60, 50);  
402 - _numberImageView.frame = CGRectMake(_doneButton.tz_left - 24 - 5, 13, 24, 24); 401 + _doneButton.frame = CGRectMake(self.view.CNTZ_width - _doneButton.CNTZ_width - 12, 0, _doneButton.CNTZ_width, 50);
  402 + _numberImageView.frame = CGRectMake(_doneButton.CNTZ_left - 24 - 5, 13, 24, 24);
403 _numberLabel.frame = _numberImageView.frame; 403 _numberLabel.frame = _numberImageView.frame;
404 - _divideLine.frame = CGRectMake(0, 0, self.view.tz_width, 1); 404 + _divideLine.frame = CGRectMake(0, 0, self.view.CNTZ_width, 1);
405 405
406 - [TZImageManager manager].columnNumber = [TZImageManager manager].columnNumber; 406 + [CNTZImageManager manager].columnNumber = [CNTZImageManager manager].columnNumber;
407 [self.collectionView reloadData]; 407 [self.collectionView reloadData];
408 408
409 - if (tzImagePickerVc.photoPickerPageDidLayoutSubviewsBlock) {  
410 - tzImagePickerVc.photoPickerPageDidLayoutSubviewsBlock(_collectionView, _bottomToolBar, _previewButton, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel, _divideLine); 409 + if (CNTZImagePickerVc.photoPickerPageDidLayoutSubviewsBlock) {
  410 + CNTZImagePickerVc.photoPickerPageDidLayoutSubviewsBlock(_collectionView, _bottomToolBar, _previewButton, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel, _divideLine);
411 } 411 }
412 } 412 }
413 413
@@ -424,7 +424,7 @@ static CGFloat itemMargin = 5; @@ -424,7 +424,7 @@ static CGFloat itemMargin = 5;
424 424
425 - (void)previewButtonClick { 425 - (void)previewButtonClick {
426 //根据进入方式不同判断 426 //根据进入方式不同判断
427 - TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init]; 427 + CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
428 photoPreviewVc.enterType = PhotoPreviewEnterTypeSelected; 428 photoPreviewVc.enterType = PhotoPreviewEnterTypeSelected;
429 [self pushPhotoPrevireViewController:photoPreviewVc needCheckSelectedModels:YES]; 429 [self pushPhotoPrevireViewController:photoPreviewVc needCheckSelectedModels:YES];
430 } 430 }
@@ -442,15 +442,15 @@ static CGFloat itemMargin = 5; @@ -442,15 +442,15 @@ static CGFloat itemMargin = 5;
442 #pragma mark - TODO: done 完成 442 #pragma mark - TODO: done 完成
443 - (void)doneButtonClick { 443 - (void)doneButtonClick {
444 NSLog(@"-----相册完成选择----"); 444 NSLog(@"-----相册完成选择----");
445 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 445 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
446 #pragma mark - 筛选 446 #pragma mark - 筛选
447 /*** 筛选 ***/ 447 /*** 筛选 ***/
448 __block BOOL isBad = NO; 448 __block BOOL isBad = NO;
449 __weak typeof(self) weakSelf = self; 449 __weak typeof(self) weakSelf = self;
450 - [tzImagePickerVc.selectedModels enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(TZAssetModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 450 + [CNTZImagePickerVc.selectedModels enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(CNTZAssetModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
451 451
452 /*** 筛选损坏视频 ***/ 452 /*** 筛选损坏视频 ***/
453 - if (obj.type == TZAssetModelMediaTypeVideo) { 453 + if (obj.type == CNTZAssetModelMediaTypeVideo) {
454 NSURL *url = [obj.asset movieURL]; 454 NSURL *url = [obj.asset movieURL];
455 if (!url) { 455 if (!url) {
456 isBad = YES; 456 isBad = YES;
@@ -459,8 +459,8 @@ static CGFloat itemMargin = 5; @@ -459,8 +459,8 @@ static CGFloat itemMargin = 5;
459 } 459 }
460 460
461 /*** 筛选损坏图片 ***/ 461 /*** 筛选损坏图片 ***/
462 - if (obj.type == TZAssetModelMediaTypePhotoGif  
463 - || obj.type == TZAssetModelMediaTypePhoto) { 462 + if (obj.type == CNTZAssetModelMediaTypePhotoGif
  463 + || obj.type == CNTZAssetModelMediaTypePhoto) {
464 464
465 UIImage *photo = [obj.asset getPhoto]; 465 UIImage *photo = [obj.asset getPhoto];
466 if (!photo) { 466 if (!photo) {
@@ -473,7 +473,7 @@ static CGFloat itemMargin = 5; @@ -473,7 +473,7 @@ static CGFloat itemMargin = 5;
473 473
474 if (isBad) { 474 if (isBad) {
475 NSString *imgShowStr = [NSString stringWithFormat:@"选择中内容已损坏,已从选中删除"]; 475 NSString *imgShowStr = [NSString stringWithFormat:@"选择中内容已损坏,已从选中删除"];
476 - [tzImagePickerVc showAlertWithTitle:imgShowStr]; 476 + [CNTZImagePickerVc showAlertWithTitle:imgShowStr];
477 [weakSelf checkSelectedModels]; 477 [weakSelf checkSelectedModels];
478 [weakSelf refreshBottomToolBarStatus]; 478 [weakSelf refreshBottomToolBarStatus];
479 [weakSelf.collectionView reloadData]; 479 [weakSelf.collectionView reloadData];
@@ -492,17 +492,24 @@ static CGFloat itemMargin = 5; @@ -492,17 +492,24 @@ static CGFloat itemMargin = 5;
492 } 492 }
493 493
494 // 1.6.8 判断是否满足最小必选张数的限制 494 // 1.6.8 判断是否满足最小必选张数的限制
495 - if (tzImagePickerVc.minImagesCount && tzImagePickerVc.selectedModels.count < tzImagePickerVc.minImagesCount) {  
496 - NSString *title = [NSString stringWithFormat:[NSBundle tz_localizedStringForKey:@"Select a minimum of %zd photos"], tzImagePickerVc.minImagesCount];  
497 - [tzImagePickerVc showAlertWithTitle:title]; 495 + if (CNTZImagePickerVc.minImagesCount && CNTZImagePickerVc.selectedModels.count < CNTZImagePickerVc.minImagesCount) {
  496 + NSString *title = [NSString stringWithFormat:[NSBundle CNTZ_localizedStringForKey:@"Select a minimum of %zd photos"], CNTZImagePickerVc.minImagesCount];
  497 + [CNTZImagePickerVc showAlertWithTitle:title];
498 return; 498 return;
499 } 499 }
500 500
501 501
502 dispatch_async(dispatch_get_main_queue(), ^{ 502 dispatch_async(dispatch_get_main_queue(), ^{
503 - [tzImagePickerVc showProgressHUD]; 503 + [CNTZImagePickerVc showProgressHUD];
504 }); 504 });
  505 + NSString *outputPath = @"";
  506 + if ([NSString isEmpty:CNTZImagePickerVc.conversationId]) {
  507 + outputPath = [CNLiveBusinessTools chatFilePathByUserId:CNUserShareModel.uid];
  508 + }else{
505 509
  510 + outputPath = [CNLiveBusinessTools getChatImageAndVideoUploadIMCacheDirectory];
  511 +
  512 + }
506 dispatch_async(dispatch_get_global_queue(0, 0), ^{ 513 dispatch_async(dispatch_get_global_queue(0, 0), ^{
507 NSMutableArray *selectedModels = [NSMutableArray array]; 514 NSMutableArray *selectedModels = [NSMutableArray array];
508 NSMutableArray *assets = [NSMutableArray array]; 515 NSMutableArray *assets = [NSMutableArray array];
@@ -510,15 +517,15 @@ static CGFloat itemMargin = 5; @@ -510,15 +517,15 @@ static CGFloat itemMargin = 5;
510 NSMutableArray *infoArr = [NSMutableArray array]; 517 NSMutableArray *infoArr = [NSMutableArray array];
511 518
512 dispatch_queue_t queue = dispatch_queue_create("export", DISPATCH_QUEUE_SERIAL);//串行 519 dispatch_queue_t queue = dispatch_queue_create("export", DISPATCH_QUEUE_SERIAL);//串行
513 - if (tzImagePickerVc.onlyReturnAsset) {  
514 - for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) {  
515 - TZAssetModel *model = tzImagePickerVc.selectedModels[i]; 520 + if (CNTZImagePickerVc.onlyReturnAsset) {
  521 + for (NSInteger i = 0; i < CNTZImagePickerVc.selectedModels.count; i++) {
  522 + CNTZAssetModel *model = CNTZImagePickerVc.selectedModels[i];
516 [assets addObject:model.asset]; 523 [assets addObject:model.asset];
517 } 524 }
518 525
519 }else { 526 }else {
520 /*** 默认添加数字站位 ***/ 527 /*** 默认添加数字站位 ***/
521 - for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) { 528 + for (NSInteger i = 0; i < CNTZImagePickerVc.selectedModels.count; i++) {
522 529
523 [selectedModels addObject:@1]; 530 [selectedModels addObject:@1];
524 [photos addObject:@1]; 531 [photos addObject:@1];
@@ -529,16 +536,16 @@ static CGFloat itemMargin = 5; @@ -529,16 +536,16 @@ static CGFloat itemMargin = 5;
529 536
530 __block BOOL havenotShowAlert = YES; 537 __block BOOL havenotShowAlert = YES;
531 __block id alertView; 538 __block id alertView;
532 - [TZImageManager manager].shouldFixOrientation = YES;  
533 - for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) {  
534 - TZAssetModel *model = tzImagePickerVc.selectedModels[i]; 539 + [CNTZImageManager manager].shouldFixOrientation = YES;
  540 + for (NSInteger i = 0; i < CNTZImagePickerVc.selectedModels.count; i++) {
  541 + CNTZAssetModel *model = CNTZImagePickerVc.selectedModels[i];
535 ///导出 542 ///导出
536 dispatch_sync(queue, ^{ 543 dispatch_sync(queue, ^{
537 // 判断是否导出视频url 544 // 判断是否导出视频url
538 - if (tzImagePickerVc.isExportVideo) {  
539 - if (model.type == TZAssetModelMediaTypeVideo) 545 + if (CNTZImagePickerVc.isExportVideo) {
  546 + if (model.type == CNTZAssetModelMediaTypeVideo)
540 { 547 {
541 - model.exportURL = [weakSelf getURLWithModel:model]; 548 + model.exportURL = [weakSelf getURLWithModel:model outputPath:outputPath];
542 } 549 }
543 [selectedModels replaceObjectAtIndex:i withObject:model]; 550 [selectedModels replaceObjectAtIndex:i withObject:model];
544 } 551 }
@@ -549,11 +556,11 @@ static CGFloat itemMargin = 5; @@ -549,11 +556,11 @@ static CGFloat itemMargin = 5;
549 dispatch_sync(queue, ^{ 556 dispatch_sync(queue, ^{
550 557
551 /*** 根据asset取图片 ***/ 558 /*** 根据asset取图片 ***/
552 - [[TZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 559 + [[CNTZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
553 if (isDegraded) return; 560 if (isDegraded) return;
554 if (photo) { 561 if (photo) {
555 - if (![TZImagePickerConfig sharedInstance].notScaleImage) {  
556 - photo = [[TZImageManager manager] scaleImage:photo toSize:CGSizeMake(tzImagePickerVc.photoWidth, (int)(tzImagePickerVc.photoWidth * photo.size.height / photo.size.width))]; 562 + if (![CNTZImagePickerConfig sharedInstance].notScaleImage) {
  563 + photo = [[CNTZImageManager manager] scaleImage:photo toSize:CGSizeMake(CNTZImagePickerVc.photoWidth, (int)(CNTZImagePickerVc.photoWidth * photo.size.height / photo.size.width))];
557 } 564 }
558 [photos replaceObjectAtIndex:i withObject:photo]; 565 [photos replaceObjectAtIndex:i withObject:photo];
559 } 566 }
@@ -571,10 +578,10 @@ static CGFloat itemMargin = 5; @@ -571,10 +578,10 @@ static CGFloat itemMargin = 5;
571 } 578 }
572 } 579 }
573 580
574 - if (tzImagePickerVc.maxImagesCount == 1 && tzImagePickerVc.allowPickingVideo == NO) { 581 + if (CNTZImagePickerVc.maxImagesCount == 1 && CNTZImagePickerVc.allowPickingVideo == NO) {
575 dispatch_async(dispatch_get_main_queue(), ^{ 582 dispatch_async(dispatch_get_main_queue(), ^{
576 - [tzImagePickerVc hideProgressHUD];  
577 - [tzImagePickerVc hideAlertView:alertView]; 583 + [CNTZImagePickerVc hideProgressHUD];
  584 + [CNTZImagePickerVc hideAlertView:alertView];
578 }); 585 });
579 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr]; 586 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
580 return; 587 return;
@@ -582,8 +589,8 @@ static CGFloat itemMargin = 5; @@ -582,8 +589,8 @@ static CGFloat itemMargin = 5;
582 589
583 if (havenotShowAlert) { 590 if (havenotShowAlert) {
584 dispatch_async(dispatch_get_main_queue(), ^{ 591 dispatch_async(dispatch_get_main_queue(), ^{
585 - [tzImagePickerVc hideProgressHUD];  
586 - [tzImagePickerVc hideAlertView:alertView]; 592 + [CNTZImagePickerVc hideProgressHUD];
  593 + [CNTZImagePickerVc hideAlertView:alertView];
587 }); 594 });
588 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr]; 595 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
589 } 596 }
@@ -591,9 +598,9 @@ static CGFloat itemMargin = 5; @@ -591,9 +598,9 @@ static CGFloat itemMargin = 5;
591 // 如果图片正在从iCloud同步中,提醒用户 598 // 如果图片正在从iCloud同步中,提醒用户
592 if (progress < 1 && havenotShowAlert && !alertView) { 599 if (progress < 1 && havenotShowAlert && !alertView) {
593 dispatch_async(dispatch_get_main_queue(), ^{ 600 dispatch_async(dispatch_get_main_queue(), ^{
594 - [tzImagePickerVc hideProgressHUD]; 601 + [CNTZImagePickerVc hideProgressHUD];
595 }); 602 });
596 - alertView = [tzImagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Synchronizing photos from iCloud"]]; 603 + alertView = [CNTZImagePickerVc showAlertWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Synchronizing photos from iCloud"]];
597 havenotShowAlert = NO; 604 havenotShowAlert = NO;
598 605
599 if (self->_isClickDone) { 606 if (self->_isClickDone) {
@@ -615,9 +622,9 @@ static CGFloat itemMargin = 5; @@ -615,9 +622,9 @@ static CGFloat itemMargin = 5;
615 622
616 623
617 /*** 当只有返回Asset 和 没选择时走 ***/ 624 /*** 当只有返回Asset 和 没选择时走 ***/
618 - if (tzImagePickerVc.selectedModels.count <= 0 || tzImagePickerVc.onlyReturnAsset) { 625 + if (CNTZImagePickerVc.selectedModels.count <= 0 || CNTZImagePickerVc.onlyReturnAsset) {
619 dispatch_async(dispatch_get_main_queue(), ^{ 626 dispatch_async(dispatch_get_main_queue(), ^{
620 - [tzImagePickerVc hideProgressHUD]; 627 + [CNTZImagePickerVc hideProgressHUD];
621 }); 628 });
622 629
623 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr]; 630 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
@@ -633,15 +640,15 @@ static CGFloat itemMargin = 5; @@ -633,15 +640,15 @@ static CGFloat itemMargin = 5;
633 // NSMutableArray *assets = [NSMutableArray array]; 640 // NSMutableArray *assets = [NSMutableArray array];
634 // NSMutableArray *photos; 641 // NSMutableArray *photos;
635 // NSMutableArray *infoArr; 642 // NSMutableArray *infoArr;
636 -// if (tzImagePickerVc.onlyReturnAsset) { // not fetch image  
637 -// for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) {  
638 -// TZAssetModel *model = tzImagePickerVc.selectedModels[i]; 643 +// if (CNTZImagePickerVc.onlyReturnAsset) { // not fetch image
  644 +// for (NSInteger i = 0; i < CNTZImagePickerVc.selectedModels.count; i++) {
  645 +// CNTZAssetModel *model = CNTZImagePickerVc.selectedModels[i];
639 // [assets addObject:model.asset]; 646 // [assets addObject:model.asset];
640 // } 647 // }
641 // } else { // fetch image 648 // } else { // fetch image
642 // photos = [NSMutableArray array]; 649 // photos = [NSMutableArray array];
643 // infoArr = [NSMutableArray array]; 650 // infoArr = [NSMutableArray array];
644 -// for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) { 651 +// for (NSInteger i = 0; i < CNTZImagePickerVc.selectedModels.count; i++) {
645 // 652 //
646 // [selectedModels addObject:@1]; 653 // [selectedModels addObject:@1];
647 // [photos addObject:@1]; 654 // [photos addObject:@1];
@@ -651,14 +658,14 @@ static CGFloat itemMargin = 5; @@ -651,14 +658,14 @@ static CGFloat itemMargin = 5;
651 // } 658 // }
652 // 659 //
653 // __block BOOL havenotShowAlert = YES; 660 // __block BOOL havenotShowAlert = YES;
654 -// [TZImageManager manager].shouldFixOrientation = YES; 661 +// [CNTZImageManager manager].shouldFixOrientation = YES;
655 // __block id alertView; 662 // __block id alertView;
656 -// for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) {  
657 -// TZAssetModel *model = tzImagePickerVc.selectedModels[i]; 663 +// for (NSInteger i = 0; i < CNTZImagePickerVc.selectedModels.count; i++) {
  664 +// CNTZAssetModel *model = CNTZImagePickerVc.selectedModels[i];
658 // 665 //
659 // /// 判断是否导出 666 // /// 判断是否导出
660 -// if (tzImagePickerVc.isExport) {  
661 -// if (model.type == TZAssetModelMediaTypeVideo) { 667 +// if (CNTZImagePickerVc.isExport) {
  668 +// if (model.type == CNTZAssetModelMediaTypeVideo) {
662 // model.exportURL = [self getURLWithModel:model]; 669 // model.exportURL = [self getURLWithModel:model];
663 // } 670 // }
664 // [selectedModels replaceObjectAtIndex:i withObject:model]; 671 // [selectedModels replaceObjectAtIndex:i withObject:model];
@@ -666,11 +673,11 @@ static CGFloat itemMargin = 5; @@ -666,11 +673,11 @@ static CGFloat itemMargin = 5;
666 // [selectedModels replaceObjectAtIndex:i withObject:model]; 673 // [selectedModels replaceObjectAtIndex:i withObject:model];
667 // } 674 // }
668 // 675 //
669 -// [[TZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 676 +// [[CNTZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
670 // if (isDegraded) return; 677 // if (isDegraded) return;
671 // if (photo) { 678 // if (photo) {
672 -// if (![TZImagePickerConfig sharedInstance].notScaleImage) {  
673 -// photo = [[TZImageManager manager] scaleImage:photo toSize:CGSizeMake(tzImagePickerVc.photoWidth, (int)(tzImagePickerVc.photoWidth * photo.size.height / photo.size.width))]; 679 +// if (![CNTZImagePickerConfig sharedInstance].notScaleImage) {
  680 +// photo = [[CNTZImageManager manager] scaleImage:photo toSize:CGSizeMake(CNTZImagePickerVc.photoWidth, (int)(CNTZImagePickerVc.photoWidth * photo.size.height / photo.size.width))];
674 // } 681 // }
675 // [photos replaceObjectAtIndex:i withObject:photo]; 682 // [photos replaceObjectAtIndex:i withObject:photo];
676 // } 683 // }
@@ -682,14 +689,14 @@ static CGFloat itemMargin = 5; @@ -682,14 +689,14 @@ static CGFloat itemMargin = 5;
682 // for (id item in photos) { if ([item isKindOfClass:[NSNumber class]]) return; } 689 // for (id item in photos) { if ([item isKindOfClass:[NSNumber class]]) return; }
683 // 690 //
684 // if (havenotShowAlert) { 691 // if (havenotShowAlert) {
685 -// [tzImagePickerVc hideAlertView:alertView]; 692 +// [CNTZImagePickerVc hideAlertView:alertView];
686 // [self didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr]; 693 // [self didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
687 // } 694 // }
688 // } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) { 695 // } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
689 // // 如果图片正在从iCloud同步中,提醒用户 696 // // 如果图片正在从iCloud同步中,提醒用户
690 // if (progress < 1 && havenotShowAlert && !alertView) { 697 // if (progress < 1 && havenotShowAlert && !alertView) {
691 -// [tzImagePickerVc hideProgressHUD];  
692 -// alertView = [tzImagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Synchronizing photos from iCloud"]]; 698 +// [CNTZImagePickerVc hideProgressHUD];
  699 +// alertView = [CNTZImagePickerVc showAlertWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Synchronizing photos from iCloud"]];
693 // havenotShowAlert = NO; 700 // havenotShowAlert = NO;
694 // return; 701 // return;
695 // } 702 // }
@@ -699,28 +706,21 @@ static CGFloat itemMargin = 5; @@ -699,28 +706,21 @@ static CGFloat itemMargin = 5;
699 // } networkAccessAllowed:YES]; 706 // } networkAccessAllowed:YES];
700 // } 707 // }
701 // } 708 // }
702 -// if (tzImagePickerVc.selectedModels.count <= 0 || tzImagePickerVc.onlyReturnAsset) { 709 +// if (CNTZImagePickerVc.selectedModels.count <= 0 || CNTZImagePickerVc.onlyReturnAsset) {
703 // [self didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr]; 710 // [self didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
704 // } 711 // }
705 } 712 }
706 713
707 /// 导出视频URL 714 /// 导出视频URL
708 -- (NSURL *)getURLWithModel:(TZAssetModel *)model{ 715 +- (NSURL *)getURLWithModel:(CNTZAssetModel *)model outputPath:(NSString *)outputPath{
709 716
710 __block NSURL *returnURL = nil; 717 __block NSURL *returnURL = nil;
711 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 718 +// CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
712 719
713 - NSString *outputPath = @"";  
714 - if ([NSString isEmpty:tzImagePickerVc.conversationId]) {  
715 - outputPath = [CNLiveBusinessTools chatFilePathByUserId:CNUserShareModel.uid];  
716 - }else{  
717 -  
718 - outputPath = [CNLiveBusinessTools getChatImageAndVideoUploadIMCacheDirectory];  
719 -  
720 - } 720 +
721 721
722 [CNLiveUploadManager zipNewVideoWithAsset:model.asset outputPath:outputPath limitType:AppPhototLimitTypeChat progressCount:^(float progress) { 722 [CNLiveUploadManager zipNewVideoWithAsset:model.asset outputPath:outputPath limitType:AppPhototLimitTypeChat progressCount:^(float progress) {
723 - 723 + NSLog(@"progress == %f",progress);
724 } success:^(NSURL *url) { 724 } success:^(NSURL *url) {
725 returnURL = url; 725 returnURL = url;
726 } failure:^{ 726 } failure:^{
@@ -758,10 +758,10 @@ static CGFloat itemMargin = 5; @@ -758,10 +758,10 @@ static CGFloat itemMargin = 5;
758 //} 758 //}
759 759
760 - (void)didGetAllPhotos:(NSArray *)photos assets:(NSArray *)assets selectedModels:(NSArray *)selectedModels infoArr:(NSArray *)infoArr { 760 - (void)didGetAllPhotos:(NSArray *)photos assets:(NSArray *)assets selectedModels:(NSArray *)selectedModels infoArr:(NSArray *)infoArr {
761 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
762 - [tzImagePickerVc hideProgressHUD]; 761 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  762 + [CNTZImagePickerVc hideProgressHUD];
763 763
764 - if (tzImagePickerVc.autoDismiss) { 764 + if (CNTZImagePickerVc.autoDismiss) {
765 [self.navigationController dismissViewControllerAnimated:YES completion:^{ 765 [self.navigationController dismissViewControllerAnimated:YES completion:^{
766 [self callDelegateMethodWithPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr]; 766 [self callDelegateMethodWithPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
767 }]; 767 }];
@@ -772,34 +772,34 @@ static CGFloat itemMargin = 5; @@ -772,34 +772,34 @@ static CGFloat itemMargin = 5;
772 772
773 ///lxg:更改 773 ///lxg:更改
774 - (void)callDelegateMethodWithPhotos:(NSArray *)photos assets:(NSArray *)assets selectedModels:(NSArray *)selectedModels infoArr:(NSArray *)infoArr { 774 - (void)callDelegateMethodWithPhotos:(NSArray *)photos assets:(NSArray *)assets selectedModels:(NSArray *)selectedModels infoArr:(NSArray *)infoArr {
775 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
776 - if (tzImagePickerVc.allowPickingVideo && tzImagePickerVc.maxImagesCount == 1) {  
777 - if ([[TZImageManager manager] isVideo:[assets firstObject]]) {  
778 - if ([tzImagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingVideo:sourceAssets:)]) {  
779 - [tzImagePickerVc.pickerDelegate imagePickerController:tzImagePickerVc didFinishPickingVideo:[photos firstObject] sourceAssets:[assets firstObject]]; 775 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  776 + if (CNTZImagePickerVc.allowPickingVideo && CNTZImagePickerVc.maxImagesCount == 1) {
  777 + if ([[CNTZImageManager manager] isVideo:[assets firstObject]]) {
  778 + if ([CNTZImagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingVideo:sourceAssets:)]) {
  779 + [CNTZImagePickerVc.pickerDelegate imagePickerController:CNTZImagePickerVc didFinishPickingVideo:[photos firstObject] sourceAssets:[assets firstObject]];
780 } 780 }
781 - if (tzImagePickerVc.didFinishPickingVideoHandle) {  
782 - tzImagePickerVc.didFinishPickingVideoHandle([photos firstObject], [assets firstObject]); 781 + if (CNTZImagePickerVc.didFinishPickingVideoHandle) {
  782 + CNTZImagePickerVc.didFinishPickingVideoHandle([photos firstObject], [assets firstObject]);
783 } 783 }
784 return; 784 return;
785 } 785 }
786 } 786 }
787 787
788 - if ([tzImagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingPhotos:sourceAssets:isSelectOriginalPhoto:)]) {  
789 - [tzImagePickerVc.pickerDelegate imagePickerController:tzImagePickerVc didFinishPickingPhotos:photos sourceAssets:assets isSelectOriginalPhoto:_isSelectOriginalPhoto]; 788 + if ([CNTZImagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingPhotos:sourceAssets:isSelectOriginalPhoto:)]) {
  789 + [CNTZImagePickerVc.pickerDelegate imagePickerController:CNTZImagePickerVc didFinishPickingPhotos:photos sourceAssets:assets isSelectOriginalPhoto:_isSelectOriginalPhoto];
790 } 790 }
791 - if ([tzImagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingPhotos:sourceAssets:isSelectOriginalPhoto:infos:)]) {  
792 - [tzImagePickerVc.pickerDelegate imagePickerController:tzImagePickerVc didFinishPickingPhotos:photos sourceAssets:assets isSelectOriginalPhoto:_isSelectOriginalPhoto infos:infoArr]; 791 + if ([CNTZImagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingPhotos:sourceAssets:isSelectOriginalPhoto:infos:)]) {
  792 + [CNTZImagePickerVc.pickerDelegate imagePickerController:CNTZImagePickerVc didFinishPickingPhotos:photos sourceAssets:assets isSelectOriginalPhoto:_isSelectOriginalPhoto infos:infoArr];
793 } 793 }
794 - if (tzImagePickerVc.didFinishPickingPhotosHandle) {  
795 - tzImagePickerVc.didFinishPickingPhotosHandle(photos,assets,_isSelectOriginalPhoto); 794 + if (CNTZImagePickerVc.didFinishPickingPhotosHandle) {
  795 + CNTZImagePickerVc.didFinishPickingPhotosHandle(photos,assets,_isSelectOriginalPhoto);
796 } 796 }
797 - if (tzImagePickerVc.didFinishPickingPhotosWithInfosHandle) {  
798 - tzImagePickerVc.didFinishPickingPhotosWithInfosHandle(photos,assets,_isSelectOriginalPhoto,infoArr); 797 + if (CNTZImagePickerVc.didFinishPickingPhotosWithInfosHandle) {
  798 + CNTZImagePickerVc.didFinishPickingPhotosWithInfosHandle(photos,assets,_isSelectOriginalPhoto,infoArr);
799 } 799 }
800 #pragma mark - TODO: 导出 800 #pragma mark - TODO: 导出
801 - if (tzImagePickerVc.didNewFinishPickingPhotosHandle) {  
802 - tzImagePickerVc.didNewFinishPickingPhotosHandle(photos, selectedModels, assets, _isSelectOriginalPhoto); 801 + if (CNTZImagePickerVc.didNewFinishPickingPhotosHandle) {
  802 + CNTZImagePickerVc.didNewFinishPickingPhotosHandle(photos, selectedModels, assets, _isSelectOriginalPhoto);
803 } 803 }
804 804
805 } 805 }
@@ -815,11 +815,11 @@ static CGFloat itemMargin = 5; @@ -815,11 +815,11 @@ static CGFloat itemMargin = 5;
815 815
816 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 816 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
817 // the cell lead to take a picture / 去拍照的cell 817 // the cell lead to take a picture / 去拍照的cell
818 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
819 - if (((tzImagePickerVc.sortAscendingByModificationDate && indexPath.item >= _models.count) || (!tzImagePickerVc.sortAscendingByModificationDate && indexPath.item == 0)) && _showTakePhotoBtn) {  
820 - TZAssetCameraCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TZAssetCameraCell" forIndexPath:indexPath];  
821 - cell.imageView.image = tzImagePickerVc.takePictureImage;  
822 - if ([tzImagePickerVc.takePictureImageName isEqualToString:@"takePicture80"]) { 818 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  819 + if (((CNTZImagePickerVc.sortAscendingByModificationDate && indexPath.item >= _models.count) || (!CNTZImagePickerVc.sortAscendingByModificationDate && indexPath.item == 0)) && _showTakePhotoBtn) {
  820 + CNTZAssetCameraCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CNTZAssetCameraCell" forIndexPath:indexPath];
  821 + cell.imageView.image = CNTZImagePickerVc.takePictureImage;
  822 + if ([CNTZImagePickerVc.takePictureImageName isEqualToString:@"takePicture80"]) {
823 cell.imageView.contentMode = UIViewContentModeCenter; 823 cell.imageView.contentMode = UIViewContentModeCenter;
824 CGFloat rgb = 223 / 255.0; 824 CGFloat rgb = 223 / 255.0;
825 cell.imageView.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:1.0]; 825 cell.imageView.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:1.0];
@@ -829,30 +829,30 @@ static CGFloat itemMargin = 5; @@ -829,30 +829,30 @@ static CGFloat itemMargin = 5;
829 return cell; 829 return cell;
830 } 830 }
831 // the cell dipaly photo or video / 展示照片或视频的cell 831 // the cell dipaly photo or video / 展示照片或视频的cell
832 - TZAssetCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TZAssetCell" forIndexPath:indexPath];  
833 - cell.allowPickingMultipleVideo = tzImagePickerVc.allowPickingMultipleVideo;  
834 - cell.photoDefImage = tzImagePickerVc.photoDefImage;  
835 - cell.photoSelImage = tzImagePickerVc.photoSelImage; 832 + CNTZAssetCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CNTZAssetCell" forIndexPath:indexPath];
  833 + cell.allowPickingMultipleVideo = CNTZImagePickerVc.allowPickingMultipleVideo;
  834 + cell.photoDefImage = CNTZImagePickerVc.photoDefImage;
  835 + cell.photoSelImage = CNTZImagePickerVc.photoSelImage;
836 cell.useCachedImage = self.useCachedImage; 836 cell.useCachedImage = self.useCachedImage;
837 - cell.assetCellDidSetModelBlock = tzImagePickerVc.assetCellDidSetModelBlock;  
838 - cell.assetCellDidLayoutSubviewsBlock = tzImagePickerVc.assetCellDidLayoutSubviewsBlock;  
839 - TZAssetModel *model;  
840 - if (tzImagePickerVc.sortAscendingByModificationDate || !_showTakePhotoBtn) { 837 + cell.assetCellDidSetModelBlock = CNTZImagePickerVc.assetCellDidSetModelBlock;
  838 + cell.assetCellDidLayoutSubviewsBlock = CNTZImagePickerVc.assetCellDidLayoutSubviewsBlock;
  839 + CNTZAssetModel *model;
  840 + if (CNTZImagePickerVc.sortAscendingByModificationDate || !_showTakePhotoBtn) {
841 model = _models[indexPath.item]; 841 model = _models[indexPath.item];
842 } else { 842 } else {
843 model = _models[indexPath.item - 1]; 843 model = _models[indexPath.item - 1];
844 } 844 }
845 - cell.allowPickingGif = tzImagePickerVc.allowPickingGif; 845 + cell.allowPickingGif = CNTZImagePickerVc.allowPickingGif;
846 cell.model = model; 846 cell.model = model;
847 - if (model.isSelected && tzImagePickerVc.showSelectedIndex) {  
848 - NSString *assetId = [[TZImageManager manager] getAssetIdentifier:model.asset];  
849 - cell.index = [tzImagePickerVc.selectedAssetIds indexOfObject:assetId] + 1; 847 + if (model.isSelected && CNTZImagePickerVc.showSelectedIndex) {
  848 + NSString *assetId = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
  849 + cell.index = [CNTZImagePickerVc.selectedAssetIds indexOfObject:assetId] + 1;
850 } 850 }
851 - cell.showSelectBtn = tzImagePickerVc.showSelectBtn;  
852 - cell.allowPreview = tzImagePickerVc.allowPreview; 851 + cell.showSelectBtn = CNTZImagePickerVc.showSelectBtn;
  852 + cell.allowPreview = CNTZImagePickerVc.allowPreview;
853 853
854 - if (tzImagePickerVc.selectedModels.count >= tzImagePickerVc.maxImagesCount && tzImagePickerVc.showPhotoCannotSelectLayer && !model.isSelected) {  
855 - cell.cannotSelectLayerButton.backgroundColor = tzImagePickerVc.cannotSelectLayerColor; 854 + if (CNTZImagePickerVc.selectedModels.count >= CNTZImagePickerVc.maxImagesCount && CNTZImagePickerVc.showPhotoCannotSelectLayer && !model.isSelected) {
  855 + cell.cannotSelectLayerButton.backgroundColor = CNTZImagePickerVc.cannotSelectLayerColor;
856 cell.cannotSelectLayerButton.hidden = NO; 856 cell.cannotSelectLayerButton.hidden = NO;
857 } else { 857 } else {
858 cell.cannotSelectLayerButton.hidden = YES; 858 cell.cannotSelectLayerButton.hidden = YES;
@@ -867,31 +867,31 @@ static CGFloat itemMargin = 5; @@ -867,31 +867,31 @@ static CGFloat itemMargin = 5;
867 __strong typeof(weakLayer) strongLayer = weakLayer; 867 __strong typeof(weakLayer) strongLayer = weakLayer;
868 868
869 if (!strongCell.model.isExport) {///lxg:裂图 869 if (!strongCell.model.isExport) {///lxg:裂图
870 - [tzImagePickerVc showAlertWithTitle:@"图有损坏不可选"]; 870 + [CNTZImagePickerVc showAlertWithTitle:@"图有损坏不可选"];
871 871
872 return; 872 return;
873 } 873 }
874 874
875 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)strongSelf.navigationController; 875 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)strongSelf.navigationController;
876 // 1. cancel select / 取消选择 876 // 1. cancel select / 取消选择
877 if (isSelected) { 877 if (isSelected) {
878 strongCell.selectPhotoButton.selected = NO; 878 strongCell.selectPhotoButton.selected = NO;
879 model.isSelected = NO; 879 model.isSelected = NO;
880 - NSArray *selectedModels = [NSArray arrayWithArray:tzImagePickerVc.selectedModels];  
881 - for (TZAssetModel *model_item in selectedModels) {  
882 - if ([[[TZImageManager manager] getAssetIdentifier:model.asset] isEqualToString:[[TZImageManager manager] getAssetIdentifier:model_item.asset]]) {  
883 - [tzImagePickerVc removeSelectedModel:model_item]; 880 + NSArray *selectedModels = [NSArray arrayWithArray:CNTZImagePickerVc.selectedModels];
  881 + for (CNTZAssetModel *model_item in selectedModels) {
  882 + if ([[[CNTZImageManager manager] getAssetIdentifier:model.asset] isEqualToString:[[CNTZImageManager manager] getAssetIdentifier:model_item.asset]]) {
  883 + [CNTZImagePickerVc removeSelectedModel:model_item];
884 break; 884 break;
885 } 885 }
886 } 886 }
887 [strongSelf refreshBottomToolBarStatus]; 887 [strongSelf refreshBottomToolBarStatus];
888 - if (tzImagePickerVc.showSelectedIndex || tzImagePickerVc.showPhotoCannotSelectLayer) { 888 + if (CNTZImagePickerVc.showSelectedIndex || CNTZImagePickerVc.showPhotoCannotSelectLayer) {
889 [strongSelf setUseCachedImageAndReloadData]; 889 [strongSelf setUseCachedImageAndReloadData];
890 } 890 }
891 - [UIView showOscillatoryAnimationWithLayer:strongLayer type:TZOscillatoryAnimationToSmaller]; 891 + [UIView showOscillatoryAnimationWithLayer:strongLayer type:CNTZOscillatoryAnimationToSmaller];
892 } else { 892 } else {
893 #pragma mark - 处理iCloud视频 893 #pragma mark - 处理iCloud视频
894 - if (weakCell.model.type == TZAssetModelMediaTypeVideo) { 894 + if (weakCell.model.type == CNTZAssetModelMediaTypeVideo) {
895 895
896 if (weakCell.model.isCheckICloudType) {//检查完成 896 if (weakCell.model.isCheckICloudType) {//检查完成
897 if (weakCell.model.isICloudType) {//源是iCloud 897 if (weakCell.model.isICloudType) {//源是iCloud
@@ -928,7 +928,7 @@ static CGFloat itemMargin = 5; @@ -928,7 +928,7 @@ static CGFloat itemMargin = 5;
928 928
929 }]; 929 }];
930 930
931 - [tzImagePickerVc showAlertWithTitle:@"请进入视频详情加载iCloud视频"]; 931 + [CNTZImagePickerVc showAlertWithTitle:@"请进入视频详情加载iCloud视频"];
932 return; 932 return;
933 933
934 }else {//已下载 934 }else {//已下载
@@ -940,14 +940,14 @@ static CGFloat itemMargin = 5; @@ -940,14 +940,14 @@ static CGFloat itemMargin = 5;
940 940
941 941
942 }else { 942 }else {
943 - [tzImagePickerVc showAlertWithTitle:@"请进入视频详情查看iCloud视频"]; 943 + [CNTZImagePickerVc showAlertWithTitle:@"请进入视频详情查看iCloud视频"];
944 return; 944 return;
945 } 945 }
946 946
947 } 947 }
948 948
949 // 2. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制 949 // 2. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制
950 - if (tzImagePickerVc.selectedModels.count < tzImagePickerVc.maxImagesCount) { 950 + if (CNTZImagePickerVc.selectedModels.count < CNTZImagePickerVc.maxImagesCount) {
951 ///lxg禁止选中限制时长视频 951 ///lxg禁止选中限制时长视频
952 NSTimeInterval duration = 0.0; 952 NSTimeInterval duration = 0.0;
953 if ([model.asset isKindOfClass:[PHAsset class]]) { 953 if ([model.asset isKindOfClass:[PHAsset class]]) {
@@ -956,11 +956,11 @@ static CGFloat itemMargin = 5; @@ -956,11 +956,11 @@ static CGFloat itemMargin = 5;
956 }else if ([model.asset isKindOfClass:[ALAsset class]]){ 956 }else if ([model.asset isKindOfClass:[ALAsset class]]){
957 duration = [[model.asset valueForProperty:ALAssetPropertyDuration] doubleValue]; 957 duration = [[model.asset valueForProperty:ALAssetPropertyDuration] doubleValue];
958 } 958 }
959 - if (model.type == TZAssetModelMediaTypeVideo  
960 - && tzImagePickerVc.allowPickingMultipleVideo  
961 - && duration > tzImagePickerVc.maxVideoDuration) {//视频,支持混选,时长超过最大时长限制  
962 - NSInteger minutes = tzImagePickerVc.maxVideoDuration / 60;  
963 - NSInteger seconds = tzImagePickerVc.maxVideoDuration % 60; 959 + if (model.type == CNTZAssetModelMediaTypeVideo
  960 + && CNTZImagePickerVc.allowPickingMultipleVideo
  961 + && duration > CNTZImagePickerVc.maxVideoDuration) {//视频,支持混选,时长超过最大时长限制
  962 + NSInteger minutes = CNTZImagePickerVc.maxVideoDuration / 60;
  963 + NSInteger seconds = CNTZImagePickerVc.maxVideoDuration % 60;
964 NSString *timeStr = [NSString string]; 964 NSString *timeStr = [NSString string];
965 if (minutes == 0) { 965 if (minutes == 0) {
966 timeStr = [NSString stringWithFormat:@"不能选择超过%li秒视频",(long)seconds]; 966 timeStr = [NSString stringWithFormat:@"不能选择超过%li秒视频",(long)seconds];
@@ -969,30 +969,30 @@ static CGFloat itemMargin = 5; @@ -969,30 +969,30 @@ static CGFloat itemMargin = 5;
969 }else{ 969 }else{
970 timeStr = [NSString stringWithFormat:@"不能选择超过%li分%li秒视频",(long)minutes,(long)seconds]; 970 timeStr = [NSString stringWithFormat:@"不能选择超过%li分%li秒视频",(long)minutes,(long)seconds];
971 } 971 }
972 - [tzImagePickerVc showAlertWithTitle:timeStr]; 972 + [CNTZImagePickerVc showAlertWithTitle:timeStr];
973 973
974 return; 974 return;
975 } 975 }
976 976
977 977
978 - if (tzImagePickerVc.maxImagesCount == 1 && !tzImagePickerVc.allowPreview) { 978 + if (CNTZImagePickerVc.maxImagesCount == 1 && !CNTZImagePickerVc.allowPreview) {
979 model.isSelected = YES; 979 model.isSelected = YES;
980 - [tzImagePickerVc addSelectedModel:model]; 980 + [CNTZImagePickerVc addSelectedModel:model];
981 [strongSelf doneButtonClick]; 981 [strongSelf doneButtonClick];
982 return; 982 return;
983 } 983 }
984 strongCell.selectPhotoButton.selected = YES; 984 strongCell.selectPhotoButton.selected = YES;
985 model.isSelected = YES; 985 model.isSelected = YES;
986 - if (tzImagePickerVc.showSelectedIndex || tzImagePickerVc.showPhotoCannotSelectLayer) { 986 + if (CNTZImagePickerVc.showSelectedIndex || CNTZImagePickerVc.showPhotoCannotSelectLayer) {
987 model.needOscillatoryAnimation = YES; 987 model.needOscillatoryAnimation = YES;
988 [strongSelf setUseCachedImageAndReloadData]; 988 [strongSelf setUseCachedImageAndReloadData];
989 } 989 }
990 - [tzImagePickerVc addSelectedModel:model]; 990 + [CNTZImagePickerVc addSelectedModel:model];
991 [strongSelf refreshBottomToolBarStatus]; 991 [strongSelf refreshBottomToolBarStatus];
992 - [UIView showOscillatoryAnimationWithLayer:strongLayer type:TZOscillatoryAnimationToSmaller]; 992 + [UIView showOscillatoryAnimationWithLayer:strongLayer type:CNTZOscillatoryAnimationToSmaller];
993 } else { 993 } else {
994 - NSString *title = [NSString stringWithFormat:[NSBundle tz_localizedStringForKey:@"Select a maximum of %zd photos"], tzImagePickerVc.maxImagesCount];  
995 - [tzImagePickerVc showAlertWithTitle:title]; 994 + NSString *title = [NSString stringWithFormat:[NSBundle CNTZ_localizedStringForKey:@"Select a maximum of %zd photos"], CNTZImagePickerVc.maxImagesCount];
  995 + [CNTZImagePickerVc showAlertWithTitle:title];
996 } 996 }
997 } 997 }
998 }; 998 };
@@ -1002,17 +1002,17 @@ static CGFloat itemMargin = 5; @@ -1002,17 +1002,17 @@ static CGFloat itemMargin = 5;
1002 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 1002 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
1003 1003
1004 // take a photo / 去拍照 1004 // take a photo / 去拍照
1005 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 1005 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
1006 1006
1007 - if (((tzImagePickerVc.sortAscendingByModificationDate && indexPath.item >= _models.count) || (!tzImagePickerVc.sortAscendingByModificationDate && indexPath.item == 0)) && _showTakePhotoBtn) { 1007 + if (((CNTZImagePickerVc.sortAscendingByModificationDate && indexPath.item >= _models.count) || (!CNTZImagePickerVc.sortAscendingByModificationDate && indexPath.item == 0)) && _showTakePhotoBtn) {
1008 [self takePhoto]; return; 1008 [self takePhoto]; return;
1009 } 1009 }
1010 1010
1011 //lxg:损坏 1011 //lxg:损坏
1012 - TZAssetModel *assetModel = _models[indexPath.row]; 1012 + CNTZAssetModel *assetModel = _models[indexPath.row];
1013 if (assetModel) { 1013 if (assetModel) {
1014 if (!assetModel.isExport) {///lxg:裂图 1014 if (!assetModel.isExport) {///lxg:裂图
1015 - [tzImagePickerVc showAlertWithTitle:@"图有损坏不可选"]; 1015 + [CNTZImagePickerVc showAlertWithTitle:@"图有损坏不可选"];
1016 1016
1017 return; 1017 return;
1018 } 1018 }
@@ -1020,44 +1020,44 @@ static CGFloat itemMargin = 5; @@ -1020,44 +1020,44 @@ static CGFloat itemMargin = 5;
1020 1020
1021 // preview phote or video / 预览照片或视频 1021 // preview phote or video / 预览照片或视频
1022 NSInteger index = indexPath.item; 1022 NSInteger index = indexPath.item;
1023 - if (!tzImagePickerVc.sortAscendingByModificationDate && _showTakePhotoBtn) { 1023 + if (!CNTZImagePickerVc.sortAscendingByModificationDate && _showTakePhotoBtn) {
1024 index = indexPath.item - 1; 1024 index = indexPath.item - 1;
1025 } 1025 }
1026 -// TZAssetModel *model = _models[index]; 1026 +// CNTZAssetModel *model = _models[index];
1027 1027
1028 #pragma mark - 聊天里面进入和朋友圈中进入LXG 1028 #pragma mark - 聊天里面进入和朋友圈中进入LXG
1029 1029
1030 - TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init]; 1030 + CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
1031 photoPreviewVc.enterType = PhotoPreviewEnterTypeNormal; 1031 photoPreviewVc.enterType = PhotoPreviewEnterTypeNormal;
1032 photoPreviewVc.currentIndex = index; 1032 photoPreviewVc.currentIndex = index;
1033 photoPreviewVc.models = _models; 1033 photoPreviewVc.models = _models;
1034 - photoPreviewVc.isSelectOriginalPhoto = tzImagePickerVc.isSelectOriginalPhoto; 1034 + photoPreviewVc.isSelectOriginalPhoto = CNTZImagePickerVc.isSelectOriginalPhoto;
1035 [self pushPhotoPrevireViewController:photoPreviewVc]; 1035 [self pushPhotoPrevireViewController:photoPreviewVc];
1036 1036
1037 1037
1038 // ///LXG进行 注释 1038 // ///LXG进行 注释
1039 -// if (model.type == TZAssetModelMediaTypeVideo && !tzImagePickerVc.allowPickingMultipleVideo) {///支持混选+点击视频  
1040 -// if (tzImagePickerVc.selectedModels.count > 0) {  
1041 -// TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;  
1042 -// [imagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Can not choose both video and photo"]]; 1039 +// if (model.type == CNTZAssetModelMediaTypeVideo && !CNTZImagePickerVc.allowPickingMultipleVideo) {///支持混选+点击视频
  1040 +// if (CNTZImagePickerVc.selectedModels.count > 0) {
  1041 +// CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
  1042 +// [imagePickerVc showAlertWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Can not choose both video and photo"]];
1043 // } else { 1043 // } else {
1044 -// TZVideoPlayerController *videoPlayerVc = [[TZVideoPlayerController alloc] init]; 1044 +// CNTZVideoPlayerController *videoPlayerVc = [[CNTZVideoPlayerController alloc] init];
1045 // videoPlayerVc.model = model; 1045 // videoPlayerVc.model = model;
1046 // videoPlayerVc.isOther = NO;//相册内部进入(LXG) 1046 // videoPlayerVc.isOther = NO;//相册内部进入(LXG)
1047 // [self.navigationController pushViewController:videoPlayerVc animated:YES]; 1047 // [self.navigationController pushViewController:videoPlayerVc animated:YES];
1048 // } 1048 // }
1049 -// } else if (model.type == TZAssetModelMediaTypePhotoGif && tzImagePickerVc.allowPickingGif && !tzImagePickerVc.allowPickingMultipleVideo) {//支持混选+GIF  
1050 -// if (tzImagePickerVc.selectedModels.count > 0) {  
1051 -// TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;  
1052 -// [imagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Can not choose both photo and GIF"]]; 1049 +// } else if (model.type == CNTZAssetModelMediaTypePhotoGif && CNTZImagePickerVc.allowPickingGif && !CNTZImagePickerVc.allowPickingMultipleVideo) {//支持混选+GIF
  1050 +// if (CNTZImagePickerVc.selectedModels.count > 0) {
  1051 +// CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
  1052 +// [imagePickerVc showAlertWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Can not choose both photo and GIF"]];
1053 // } else { 1053 // } else {
1054 -// TZGifPhotoPreviewController *gifPreviewVc = [[TZGifPhotoPreviewController alloc] init]; 1054 +// CNTZGifPhotoPreviewController *gifPreviewVc = [[CNTZGifPhotoPreviewController alloc] init];
1055 // gifPreviewVc.model = model; 1055 // gifPreviewVc.model = model;
1056 // [self.navigationController pushViewController:gifPreviewVc animated:YES]; 1056 // [self.navigationController pushViewController:gifPreviewVc animated:YES];
1057 // } 1057 // }
1058 // } else { 1058 // } else {
1059 //#pragma mark - 当可以混选 1059 //#pragma mark - 当可以混选
1060 -// TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init]; 1060 +// CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
1061 // photoPreviewVc.currentIndex = index; 1061 // photoPreviewVc.currentIndex = index;
1062 // photoPreviewVc.models = _models; 1062 // photoPreviewVc.models = _models;
1063 // [self pushPhotoPrevireViewController:photoPreviewVc]; 1063 // [self pushPhotoPrevireViewController:photoPreviewVc];
@@ -1087,17 +1087,17 @@ static CGFloat itemMargin = 5; @@ -1087,17 +1087,17 @@ static CGFloat itemMargin = 5;
1087 AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; 1087 AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
1088 if ((authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied) && iOS7Later) { 1088 if ((authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied) && iOS7Later) {
1089 1089
1090 - NSDictionary *infoDict = [TZCommonTools tz_getInfoDictionary]; 1090 + NSDictionary *infoDict = [CNTZCommonTools CNTZ_getInfoDictionary];
1091 // 无权限 做一个友好的提示 1091 // 无权限 做一个友好的提示
1092 NSString *appName = [infoDict valueForKey:@"CFBundleDisplayName"]; 1092 NSString *appName = [infoDict valueForKey:@"CFBundleDisplayName"];
1093 if (!appName) appName = [infoDict valueForKey:@"CFBundleName"]; 1093 if (!appName) appName = [infoDict valueForKey:@"CFBundleName"];
1094 1094
1095 - NSString *message = [NSString stringWithFormat:[NSBundle tz_localizedStringForKey:@"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\""],appName]; 1095 + NSString *message = [NSString stringWithFormat:[NSBundle CNTZ_localizedStringForKey:@"Please allow %@ to access your camera in \"Settings -> Privacy -> Camera\""],appName];
1096 if (iOS8Later) { 1096 if (iOS8Later) {
1097 - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSBundle tz_localizedStringForKey:@"Can not use camera"] message:message delegate:self cancelButtonTitle:[NSBundle tz_localizedStringForKey:@"Cancel"] otherButtonTitles:[NSBundle tz_localizedStringForKey:@"Setting"], nil]; 1097 + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Can not use camera"] message:message delegate:self cancelButtonTitle:[NSBundle CNTZ_localizedStringForKey:@"Cancel"] otherButtonTitles:[NSBundle CNTZ_localizedStringForKey:@"Setting"], nil];
1098 [alert show]; 1098 [alert show];
1099 } else { 1099 } else {
1100 - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSBundle tz_localizedStringForKey:@"Can not use camera"] message:message delegate:self cancelButtonTitle:[NSBundle tz_localizedStringForKey:@"OK"] otherButtonTitles:nil]; 1100 + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Can not use camera"] message:message delegate:self cancelButtonTitle:[NSBundle CNTZ_localizedStringForKey:@"OK"] otherButtonTitles:nil];
1101 [alert show]; 1101 [alert show];
1102 } 1102 }
1103 } else if (authStatus == AVAuthorizationStatusNotDetermined) { 1103 } else if (authStatus == AVAuthorizationStatusNotDetermined) {
@@ -1121,10 +1121,10 @@ static CGFloat itemMargin = 5; @@ -1121,10 +1121,10 @@ static CGFloat itemMargin = 5;
1121 // 调用相机 1121 // 调用相机
1122 - (void)pushImagePickerController { 1122 - (void)pushImagePickerController {
1123 // 提前定位 1123 // 提前定位
1124 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
1125 - if (tzImagePickerVc.allowCameraLocation) { 1124 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  1125 + if (CNTZImagePickerVc.allowCameraLocation) {
1126 __weak typeof(self) weakSelf = self; 1126 __weak typeof(self) weakSelf = self;
1127 - [[TZLocationManager manager] startLocationWithSuccessBlock:^(NSArray<CLLocation *> *locations) { 1127 + [[CNTZLocationManager manager] startLocationWithSuccessBlock:^(NSArray<CLLocation *> *locations) {
1128 __strong typeof(weakSelf) strongSelf = weakSelf; 1128 __strong typeof(weakSelf) strongSelf = weakSelf;
1129 strongSelf.location = [locations firstObject]; 1129 strongSelf.location = [locations firstObject];
1130 } failureBlock:^(NSError *error) { 1130 } failureBlock:^(NSError *error) {
@@ -1137,19 +1137,19 @@ static CGFloat itemMargin = 5; @@ -1137,19 +1137,19 @@ static CGFloat itemMargin = 5;
1137 if ([UIImagePickerController isSourceTypeAvailable: sourceType]) { 1137 if ([UIImagePickerController isSourceTypeAvailable: sourceType]) {
1138 self.imagePickerVc.sourceType = sourceType; 1138 self.imagePickerVc.sourceType = sourceType;
1139 NSMutableArray *mediaTypes = [NSMutableArray array]; 1139 NSMutableArray *mediaTypes = [NSMutableArray array];
1140 - if (tzImagePickerVc.allowTakePicture) { 1140 + if (CNTZImagePickerVc.allowTakePicture) {
1141 [mediaTypes addObject:(NSString *)kUTTypeImage]; 1141 [mediaTypes addObject:(NSString *)kUTTypeImage];
1142 } 1142 }
1143 - if (tzImagePickerVc.allowTakeVideo) { 1143 + if (CNTZImagePickerVc.allowTakeVideo) {
1144 [mediaTypes addObject:(NSString *)kUTTypeMovie]; 1144 [mediaTypes addObject:(NSString *)kUTTypeMovie];
1145 - self.imagePickerVc.videoMaximumDuration = tzImagePickerVc.videoMaximumDuration; 1145 + self.imagePickerVc.videoMaximumDuration = CNTZImagePickerVc.videoMaximumDuration;
1146 } 1146 }
1147 self.imagePickerVc.mediaTypes= mediaTypes; 1147 self.imagePickerVc.mediaTypes= mediaTypes;
1148 if (iOS8Later) { 1148 if (iOS8Later) {
1149 _imagePickerVc.modalPresentationStyle = UIModalPresentationOverCurrentContext; 1149 _imagePickerVc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
1150 } 1150 }
1151 - if (tzImagePickerVc.uiImagePickerControllerSettingBlock) {  
1152 - tzImagePickerVc.uiImagePickerControllerSettingBlock(_imagePickerVc); 1151 + if (CNTZImagePickerVc.uiImagePickerControllerSettingBlock) {
  1152 + CNTZImagePickerVc.uiImagePickerControllerSettingBlock(_imagePickerVc);
1153 } 1153 }
1154 [self presentViewController:_imagePickerVc animated:YES completion:nil]; 1154 [self presentViewController:_imagePickerVc animated:YES completion:nil];
1155 } else { 1155 } else {
@@ -1158,31 +1158,31 @@ static CGFloat itemMargin = 5; @@ -1158,31 +1158,31 @@ static CGFloat itemMargin = 5;
1158 } 1158 }
1159 1159
1160 - (void)refreshBottomToolBarStatus { 1160 - (void)refreshBottomToolBarStatus {
1161 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 1161 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
1162 1162
1163 - _previewButton.enabled = tzImagePickerVc.selectedModels.count > 0;  
1164 - _doneButton.enabled = tzImagePickerVc.selectedModels.count > 0 || tzImagePickerVc.alwaysEnableDoneBtn; 1163 + _previewButton.enabled = CNTZImagePickerVc.selectedModels.count > 0;
  1164 + _doneButton.enabled = CNTZImagePickerVc.selectedModels.count > 0 || CNTZImagePickerVc.alwaysEnableDoneBtn;
1165 1165
1166 - _numberImageView.hidden = tzImagePickerVc.selectedModels.count <= 0;  
1167 - _numberLabel.hidden = tzImagePickerVc.selectedModels.count <= 0;  
1168 - _numberLabel.text = [NSString stringWithFormat:@"%zd",tzImagePickerVc.selectedModels.count]; 1166 + _numberImageView.hidden = CNTZImagePickerVc.selectedModels.count <= 0;
  1167 + _numberLabel.hidden = CNTZImagePickerVc.selectedModels.count <= 0;
  1168 + _numberLabel.text = [NSString stringWithFormat:@"%zd",CNTZImagePickerVc.selectedModels.count];
1169 #pragma mark - 添加: 选择图片个数显示(LXG) 1169 #pragma mark - 添加: 选择图片个数显示(LXG)
1170 _numberImageView.hidden = YES; 1170 _numberImageView.hidden = YES;
1171 _numberLabel.hidden = YES; 1171 _numberLabel.hidden = YES;
1172 - [_doneButton setTitle:[NSString stringWithFormat:@"完成(%zd)",tzImagePickerVc.selectedModels.count] forState:UIControlStateNormal]; 1172 + [_doneButton setTitle:[NSString stringWithFormat:@"完成(%zd)",CNTZImagePickerVc.selectedModels.count] forState:UIControlStateNormal];
1173 1173
1174 - _originalPhotoButton.enabled = tzImagePickerVc.selectedModels.count > 0; 1174 + _originalPhotoButton.enabled = CNTZImagePickerVc.selectedModels.count > 0;
1175 _originalPhotoButton.selected = (_isSelectOriginalPhoto && _originalPhotoButton.enabled); 1175 _originalPhotoButton.selected = (_isSelectOriginalPhoto && _originalPhotoButton.enabled);
1176 _originalPhotoLabel.hidden = YES;///lxg添加 1176 _originalPhotoLabel.hidden = YES;///lxg添加
1177 // _originalPhotoLabel.hidden = (!_originalPhotoButton.isSelected);///lxg注释 1177 // _originalPhotoLabel.hidden = (!_originalPhotoButton.isSelected);///lxg注释
1178 if (_isSelectOriginalPhoto) [self getSelectedPhotoBytes]; 1178 if (_isSelectOriginalPhoto) [self getSelectedPhotoBytes];
1179 } 1179 }
1180 1180
1181 -- (void)pushPhotoPrevireViewController:(TZPhotoPreviewController *)photoPreviewVc { 1181 +- (void)pushPhotoPrevireViewController:(CNTZPhotoPreviewController *)photoPreviewVc {
1182 [self pushPhotoPrevireViewController:photoPreviewVc needCheckSelectedModels:NO]; 1182 [self pushPhotoPrevireViewController:photoPreviewVc needCheckSelectedModels:NO];
1183 } 1183 }
1184 1184
1185 -- (void)pushPhotoPrevireViewController:(TZPhotoPreviewController *)photoPreviewVc needCheckSelectedModels:(BOOL)needCheckSelectedModels { 1185 +- (void)pushPhotoPrevireViewController:(CNTZPhotoPreviewController *)photoPreviewVc needCheckSelectedModels:(BOOL)needCheckSelectedModels {
1186 __weak typeof(self) weakSelf = self; 1186 __weak typeof(self) weakSelf = self;
1187 photoPreviewVc.isSelectOriginalPhoto = _isSelectOriginalPhoto; 1187 photoPreviewVc.isSelectOriginalPhoto = _isSelectOriginalPhoto;
1188 [photoPreviewVc setBackButtonClickBlock:^(BOOL isSelectOriginalPhoto) { 1188 [photoPreviewVc setBackButtonClickBlock:^(BOOL isSelectOriginalPhoto) {
@@ -1210,21 +1210,21 @@ static CGFloat itemMargin = 5; @@ -1210,21 +1210,21 @@ static CGFloat itemMargin = 5;
1210 1210
1211 - (void)getSelectedPhotoBytes { 1211 - (void)getSelectedPhotoBytes {
1212 // 越南语 && 5屏幕时会显示不下,暂时这样处理 1212 // 越南语 && 5屏幕时会显示不下,暂时这样处理
1213 - if ([[TZImagePickerConfig sharedInstance].preferredLanguage isEqualToString:@"vi"] && self.view.tz_width <= 320) { 1213 + if ([[CNTZImagePickerConfig sharedInstance].preferredLanguage isEqualToString:@"vi"] && self.view.CNTZ_width <= 320) {
1214 return; 1214 return;
1215 } 1215 }
1216 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;  
1217 - [[TZImageManager manager] getPhotosBytesWithArray:imagePickerVc.selectedModels completion:^(NSString *totalBytes) { 1216 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
  1217 + [[CNTZImageManager manager] getPhotosBytesWithArray:imagePickerVc.selectedModels completion:^(NSString *totalBytes) {
1218 self->_originalPhotoLabel.text = [NSString stringWithFormat:@"(%@)",totalBytes]; 1218 self->_originalPhotoLabel.text = [NSString stringWithFormat:@"(%@)",totalBytes];
1219 self->_originalPhotoLabel.hidden = YES;///lxg添加 1219 self->_originalPhotoLabel.hidden = YES;///lxg添加
1220 }]; 1220 }];
1221 } 1221 }
1222 1222
1223 - (void)scrollCollectionViewToBottom { 1223 - (void)scrollCollectionViewToBottom {
1224 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 1224 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
1225 if (_shouldScrollToBottom && _models.count > 0) { 1225 if (_shouldScrollToBottom && _models.count > 0) {
1226 NSInteger item = 0; 1226 NSInteger item = 0;
1227 - if (tzImagePickerVc.sortAscendingByModificationDate) { 1227 + if (CNTZImagePickerVc.sortAscendingByModificationDate) {
1228 item = _models.count - 1; 1228 item = _models.count - 1;
1229 if (_showTakePhotoBtn) { 1229 if (_showTakePhotoBtn) {
1230 item += 1; 1230 item += 1;
@@ -1244,41 +1244,41 @@ static CGFloat itemMargin = 5; @@ -1244,41 +1244,41 @@ static CGFloat itemMargin = 5;
1244 - (void)checkSelectedModels { 1244 - (void)checkSelectedModels {
1245 NSMutableArray *selectedAssets = [NSMutableArray array]; 1245 NSMutableArray *selectedAssets = [NSMutableArray array];
1246 1246
1247 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 1247 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
1248 1248
1249 - [tzImagePickerVc.selectedModels enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(TZAssetModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 1249 + [CNTZImagePickerVc.selectedModels enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(CNTZAssetModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
1250 1250
1251 /*** 筛选损坏视频 ***/ 1251 /*** 筛选损坏视频 ***/
1252 - if (obj.type == TZAssetModelMediaTypeVideo) { 1252 + if (obj.type == CNTZAssetModelMediaTypeVideo) {
1253 NSURL *url = [obj.asset movieURL]; 1253 NSURL *url = [obj.asset movieURL];
1254 if (!url) { 1254 if (!url) {
1255 - [tzImagePickerVc removeSelectedModel:obj]; 1255 + [CNTZImagePickerVc removeSelectedModel:obj];
1256 NSString *imgShowStr = [NSString stringWithFormat:@"选择中第%ld已损坏,已删除",(idx + 1)]; 1256 NSString *imgShowStr = [NSString stringWithFormat:@"选择中第%ld已损坏,已删除",(idx + 1)];
1257 - [tzImagePickerVc showAlertWithTitle:imgShowStr]; 1257 + [CNTZImagePickerVc showAlertWithTitle:imgShowStr];
1258 1258
1259 } 1259 }
1260 } 1260 }
1261 /*** 筛选损坏图片 ***/ 1261 /*** 筛选损坏图片 ***/
1262 - if (obj.type == TZAssetModelMediaTypePhotoGif  
1263 - || obj.type == TZAssetModelMediaTypePhoto) { 1262 + if (obj.type == CNTZAssetModelMediaTypePhotoGif
  1263 + || obj.type == CNTZAssetModelMediaTypePhoto) {
1264 1264
1265 UIImage *photo = [obj.asset getPhoto]; 1265 UIImage *photo = [obj.asset getPhoto];
1266 if (!photo) { 1266 if (!photo) {
1267 - [tzImagePickerVc removeSelectedModel:obj]; 1267 + [CNTZImagePickerVc removeSelectedModel:obj];
1268 NSString *imgShowStr = [NSString stringWithFormat:@"选择中第%ld已损坏,已删除",(idx + 1)]; 1268 NSString *imgShowStr = [NSString stringWithFormat:@"选择中第%ld已损坏,已删除",(idx + 1)];
1269 - [tzImagePickerVc showAlertWithTitle:imgShowStr]; 1269 + [CNTZImagePickerVc showAlertWithTitle:imgShowStr];
1270 } 1270 }
1271 1271
1272 } 1272 }
1273 1273
1274 }]; 1274 }];
1275 1275
1276 - for (TZAssetModel *model in tzImagePickerVc.selectedModels) { 1276 + for (CNTZAssetModel *model in CNTZImagePickerVc.selectedModels) {
1277 [selectedAssets addObject:model.asset]; 1277 [selectedAssets addObject:model.asset];
1278 } 1278 }
1279 - for (TZAssetModel *model in _models) { 1279 + for (CNTZAssetModel *model in _models) {
1280 model.isSelected = NO; 1280 model.isSelected = NO;
1281 - if ([[TZImageManager manager] isAssetsArray:selectedAssets containAsset:model.asset]) { 1281 + if ([[CNTZImageManager manager] isAssetsArray:selectedAssets containAsset:model.asset]) {
1282 model.isSelected = YES; 1282 model.isSelected = YES;
1283 } 1283 }
1284 } 1284 }
@@ -1301,11 +1301,11 @@ static CGFloat itemMargin = 5; @@ -1301,11 +1301,11 @@ static CGFloat itemMargin = 5;
1301 [picker dismissViewControllerAnimated:YES completion:nil]; 1301 [picker dismissViewControllerAnimated:YES completion:nil];
1302 NSString *type = [info objectForKey:UIImagePickerControllerMediaType]; 1302 NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
1303 if ([type isEqualToString:@"public.image"]) { 1303 if ([type isEqualToString:@"public.image"]) {
1304 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 1304 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
1305 [imagePickerVc showProgressHUD]; 1305 [imagePickerVc showProgressHUD];
1306 UIImage *photo = [info objectForKey:UIImagePickerControllerOriginalImage]; 1306 UIImage *photo = [info objectForKey:UIImagePickerControllerOriginalImage];
1307 if (photo) { 1307 if (photo) {
1308 - [[TZImageManager manager] savePhotoWithImage:photo location:self.location completion:^(NSError *error){ 1308 + [[CNTZImageManager manager] savePhotoWithImage:photo location:self.location completion:^(NSError *error){
1309 if (!error) { 1309 if (!error) {
1310 [self reloadPhotoArrayWithMediaType:type]; 1310 [self reloadPhotoArrayWithMediaType:type];
1311 } 1311 }
@@ -1313,11 +1313,11 @@ static CGFloat itemMargin = 5; @@ -1313,11 +1313,11 @@ static CGFloat itemMargin = 5;
1313 self.location = nil; 1313 self.location = nil;
1314 } 1314 }
1315 } else if ([type isEqualToString:@"public.movie"]) { 1315 } else if ([type isEqualToString:@"public.movie"]) {
1316 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 1316 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
1317 [imagePickerVc showProgressHUD]; 1317 [imagePickerVc showProgressHUD];
1318 NSURL *videoUrl = [info objectForKey:UIImagePickerControllerMediaURL]; 1318 NSURL *videoUrl = [info objectForKey:UIImagePickerControllerMediaURL];
1319 if (videoUrl) { 1319 if (videoUrl) {
1320 - [[TZImageManager manager] saveVideoWithUrl:videoUrl location:self.location completion:^(NSError *error) { 1320 + [[CNTZImageManager manager] saveVideoWithUrl:videoUrl location:self.location completion:^(NSError *error) {
1321 if (!error) { 1321 if (!error) {
1322 [self reloadPhotoArrayWithMediaType:type]; 1322 [self reloadPhotoArrayWithMediaType:type];
1323 } 1323 }
@@ -1328,14 +1328,14 @@ static CGFloat itemMargin = 5; @@ -1328,14 +1328,14 @@ static CGFloat itemMargin = 5;
1328 } 1328 }
1329 1329
1330 - (void)reloadPhotoArrayWithMediaType:(NSString *)mediaType { 1330 - (void)reloadPhotoArrayWithMediaType:(NSString *)mediaType {
1331 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
1332 - [[TZImageManager manager] getCameraRollAlbum:tzImagePickerVc.allowPickingVideo allowPickingImage:tzImagePickerVc.allowPickingImage needFetchAssets:NO completion:^(TZAlbumModel *model) { 1331 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  1332 + [[CNTZImageManager manager] getCameraRollAlbum:CNTZImagePickerVc.allowPickingVideo allowPickingImage:CNTZImagePickerVc.allowPickingImage needFetchAssets:NO completion:^(CNTZAlbumModel *model) {
1333 self->_model = model; 1333 self->_model = model;
1334 - [[TZImageManager manager] getAssetsFromFetchResult:self->_model.result completion:^(NSArray<TZAssetModel *> *models) {  
1335 - [tzImagePickerVc hideProgressHUD]; 1334 + [[CNTZImageManager manager] getAssetsFromFetchResult:self->_model.result completion:^(NSArray<CNTZAssetModel *> *models) {
  1335 + [CNTZImagePickerVc hideProgressHUD];
1336 1336
1337 - TZAssetModel *assetModel;  
1338 - if (tzImagePickerVc.sortAscendingByModificationDate) { 1337 + CNTZAssetModel *assetModel;
  1338 + if (CNTZImagePickerVc.sortAscendingByModificationDate) {
1339 assetModel = [models lastObject]; 1339 assetModel = [models lastObject];
1340 [self->_models addObject:assetModel]; 1340 [self->_models addObject:assetModel];
1341 } else { 1341 } else {
@@ -1343,10 +1343,10 @@ static CGFloat itemMargin = 5; @@ -1343,10 +1343,10 @@ static CGFloat itemMargin = 5;
1343 [self->_models insertObject:assetModel atIndex:0]; 1343 [self->_models insertObject:assetModel atIndex:0];
1344 } 1344 }
1345 1345
1346 - if (tzImagePickerVc.maxImagesCount <= 1) {  
1347 - if (tzImagePickerVc.allowCrop) {  
1348 - TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init];  
1349 - if (tzImagePickerVc.sortAscendingByModificationDate) { 1346 + if (CNTZImagePickerVc.maxImagesCount <= 1) {
  1347 + if (CNTZImagePickerVc.allowCrop) {
  1348 + CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
  1349 + if (CNTZImagePickerVc.sortAscendingByModificationDate) {
1350 photoPreviewVc.currentIndex = self->_models.count - 1; 1350 photoPreviewVc.currentIndex = self->_models.count - 1;
1351 } else { 1351 } else {
1352 photoPreviewVc.currentIndex = 0; 1352 photoPreviewVc.currentIndex = 0;
@@ -1354,18 +1354,18 @@ static CGFloat itemMargin = 5; @@ -1354,18 +1354,18 @@ static CGFloat itemMargin = 5;
1354 photoPreviewVc.models = self->_models; 1354 photoPreviewVc.models = self->_models;
1355 [self pushPhotoPrevireViewController:photoPreviewVc]; 1355 [self pushPhotoPrevireViewController:photoPreviewVc];
1356 } else { 1356 } else {
1357 - [tzImagePickerVc addSelectedModel:assetModel]; 1357 + [CNTZImagePickerVc addSelectedModel:assetModel];
1358 [self doneButtonClick]; 1358 [self doneButtonClick];
1359 } 1359 }
1360 return; 1360 return;
1361 } 1361 }
1362 1362
1363 - if (tzImagePickerVc.selectedModels.count < tzImagePickerVc.maxImagesCount) {  
1364 - if ([mediaType isEqualToString:@"public.movie"] && !tzImagePickerVc.allowPickingMultipleVideo) { 1363 + if (CNTZImagePickerVc.selectedModels.count < CNTZImagePickerVc.maxImagesCount) {
  1364 + if ([mediaType isEqualToString:@"public.movie"] && !CNTZImagePickerVc.allowPickingMultipleVideo) {
1365 // 不能多选视频的情况下,不选中拍摄的视频 1365 // 不能多选视频的情况下,不选中拍摄的视频
1366 } else { 1366 } else {
1367 assetModel.isSelected = YES; 1367 assetModel.isSelected = YES;
1368 - [tzImagePickerVc addSelectedModel:assetModel]; 1368 + [CNTZImagePickerVc addSelectedModel:assetModel];
1369 [self refreshBottomToolBarStatus]; 1369 [self refreshBottomToolBarStatus];
1370 } 1370 }
1371 } 1371 }
@@ -1384,13 +1384,13 @@ static CGFloat itemMargin = 5; @@ -1384,13 +1384,13 @@ static CGFloat itemMargin = 5;
1384 1384
1385 - (void)dealloc { 1385 - (void)dealloc {
1386 // NSLog(@"%@ dealloc",NSStringFromClass(self.class)); 1386 // NSLog(@"%@ dealloc",NSStringFromClass(self.class));
1387 - NSLog(@"相册_相册_TZPhotoPickerController_dealloc"); 1387 + NSLog(@"相册_相册_CNTZPhotoPickerController_dealloc");
1388 } 1388 }
1389 1389
1390 #pragma mark - Asset Caching 1390 #pragma mark - Asset Caching
1391 1391
1392 - (void)resetCachedAssets { 1392 - (void)resetCachedAssets {
1393 - [[TZImageManager manager].cachingImageManager stopCachingImagesForAllAssets]; 1393 + [[CNTZImageManager manager].cachingImageManager stopCachingImagesForAllAssets];
1394 self.previousPreheatRect = CGRectZero; 1394 self.previousPreheatRect = CGRectZero;
1395 } 1395 }
1396 1396
@@ -1425,11 +1425,11 @@ static CGFloat itemMargin = 5; @@ -1425,11 +1425,11 @@ static CGFloat itemMargin = 5;
1425 NSArray *assetsToStopCaching = [self assetsAtIndexPaths:removedIndexPaths]; 1425 NSArray *assetsToStopCaching = [self assetsAtIndexPaths:removedIndexPaths];
1426 1426
1427 // Update the assets the PHCachingImageManager is caching. 1427 // Update the assets the PHCachingImageManager is caching.
1428 - [[TZImageManager manager].cachingImageManager startCachingImagesForAssets:assetsToStartCaching 1428 + [[CNTZImageManager manager].cachingImageManager startCachingImagesForAssets:assetsToStartCaching
1429 targetSize:AssetGridThumbnailSize 1429 targetSize:AssetGridThumbnailSize
1430 contentMode:PHImageContentModeAspectFill 1430 contentMode:PHImageContentModeAspectFill
1431 options:nil]; 1431 options:nil];
1432 - [[TZImageManager manager].cachingImageManager stopCachingImagesForAssets:assetsToStopCaching 1432 + [[CNTZImageManager manager].cachingImageManager stopCachingImagesForAssets:assetsToStopCaching
1433 targetSize:AssetGridThumbnailSize 1433 targetSize:AssetGridThumbnailSize
1434 contentMode:PHImageContentModeAspectFill 1434 contentMode:PHImageContentModeAspectFill
1435 options:nil]; 1435 options:nil];
@@ -1477,7 +1477,7 @@ static CGFloat itemMargin = 5; @@ -1477,7 +1477,7 @@ static CGFloat itemMargin = 5;
1477 NSMutableArray *assets = [NSMutableArray arrayWithCapacity:indexPaths.count]; 1477 NSMutableArray *assets = [NSMutableArray arrayWithCapacity:indexPaths.count];
1478 for (NSIndexPath *indexPath in indexPaths) { 1478 for (NSIndexPath *indexPath in indexPaths) {
1479 if (indexPath.item < _models.count) { 1479 if (indexPath.item < _models.count) {
1480 - TZAssetModel *model = _models[indexPath.item]; 1480 + CNTZAssetModel *model = _models[indexPath.item];
1481 [assets addObject:model.asset]; 1481 [assets addObject:model.asset];
1482 } 1482 }
1483 } 1483 }
@@ -1501,7 +1501,7 @@ static CGFloat itemMargin = 5; @@ -1501,7 +1501,7 @@ static CGFloat itemMargin = 5;
1501 1501
1502 1502
1503 1503
1504 -@implementation TZCollectionView 1504 +@implementation CNTZCollectionView
1505 1505
1506 - (BOOL)touchesShouldCancelInContentView:(UIView *)view { 1506 - (BOOL)touchesShouldCancelInContentView:(UIView *)view {
1507 if ([view isKindOfClass:[UIControl class]]) { 1507 if ([view isKindOfClass:[UIControl class]]) {
CNLiveImagePickerController/Classes/TZPhotoPreviewCell.h renamed to CNLiveImagePickerController/Classes/CNTZPhotoPreviewCell.h
1 // 1 //
2 -// TZPhotoPreviewCell.h  
3 -// TZImagePickerController 2 +// CNTZPhotoPreviewCell.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
@@ -8,21 +8,21 @@ @@ -8,21 +8,21 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@class TZAssetModel;  
12 -@interface TZAssetPreviewCell : UICollectionViewCell  
13 -@property (nonatomic, strong) TZAssetModel *model; 11 +@class CNTZAssetModel;
  12 +@interface CNTZAssetPreviewCell : UICollectionViewCell
  13 +@property (nonatomic, strong) CNTZAssetModel *model;
14 @property (nonatomic, copy) void (^singleTapGestureBlock)(void); 14 @property (nonatomic, copy) void (^singleTapGestureBlock)(void);
15 - (void)configSubviews; 15 - (void)configSubviews;
16 - (void)photoPreviewCollectionViewDidScroll; 16 - (void)photoPreviewCollectionViewDidScroll;
17 @end 17 @end
18 18
19 19
20 -@class TZAssetModel,TZProgressView,TZPhotoPreviewView;  
21 -@interface TZPhotoPreviewCell : TZAssetPreviewCell 20 +@class CNTZAssetModel,CNTZProgressView,CNTZPhotoPreviewView;
  21 +@interface CNTZPhotoPreviewCell : CNTZAssetPreviewCell
22 22
23 @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress); 23 @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress);
24 24
25 -@property (nonatomic, strong) TZPhotoPreviewView *previewView; 25 +@property (nonatomic, strong) CNTZPhotoPreviewView *previewView;
26 26
27 @property (nonatomic, assign) BOOL allowCrop; 27 @property (nonatomic, assign) BOOL allowCrop;
28 @property (nonatomic, assign) CGRect cropRect; 28 @property (nonatomic, assign) CGRect cropRect;
@@ -32,16 +32,16 @@ @@ -32,16 +32,16 @@
32 @end 32 @end
33 33
34 34
35 -@interface TZPhotoPreviewView : UIView 35 +@interface CNTZPhotoPreviewView : UIView
36 @property (nonatomic, strong) UIImageView *imageView; 36 @property (nonatomic, strong) UIImageView *imageView;
37 @property (nonatomic, strong) UIScrollView *scrollView; 37 @property (nonatomic, strong) UIScrollView *scrollView;
38 @property (nonatomic, strong) UIView *imageContainerView; 38 @property (nonatomic, strong) UIView *imageContainerView;
39 -@property (nonatomic, strong) TZProgressView *progressView; 39 +@property (nonatomic, strong) CNTZProgressView *progressView;
40 40
41 @property (nonatomic, assign) BOOL allowCrop; 41 @property (nonatomic, assign) BOOL allowCrop;
42 @property (nonatomic, assign) CGRect cropRect; 42 @property (nonatomic, assign) CGRect cropRect;
43 43
44 -@property (nonatomic, strong) TZAssetModel *model; 44 +@property (nonatomic, strong) CNTZAssetModel *model;
45 @property (nonatomic, strong) id asset; 45 @property (nonatomic, strong) id asset;
46 @property (nonatomic, copy) void (^singleTapGestureBlock)(void); 46 @property (nonatomic, copy) void (^singleTapGestureBlock)(void);
47 @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress); 47 @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress);
@@ -53,19 +53,19 @@ @@ -53,19 +53,19 @@
53 53
54 54
55 @class AVPlayer, AVPlayerLayer; 55 @class AVPlayer, AVPlayerLayer;
56 -@interface TZVideoPreviewCell : TZAssetPreviewCell 56 +@interface CNTZVideoPreviewCell : CNTZAssetPreviewCell
57 @property (strong, nonatomic) AVPlayer *player; 57 @property (strong, nonatomic) AVPlayer *player;
58 @property (strong, nonatomic) AVPlayerLayer *playerLayer; 58 @property (strong, nonatomic) AVPlayerLayer *playerLayer;
59 @property (strong, nonatomic) UIButton *playButton; 59 @property (strong, nonatomic) UIButton *playButton;
60 @property (strong, nonatomic) UIImage *cover; 60 @property (strong, nonatomic) UIImage *cover;
61 61
62 -@property (nonatomic, strong) TZProgressView *progressView;  
63 -@property (nonatomic, copy) void (^imageProgressUpdateBlock)(TZVideoPreviewCell *cell); 62 +@property (nonatomic, strong) CNTZProgressView *progressView;
  63 +@property (nonatomic, copy) void (^imageProgressUpdateBlock)(CNTZVideoPreviewCell *cell);
64 64
65 - (void)pausePlayerAndShowNaviBar; 65 - (void)pausePlayerAndShowNaviBar;
66 @end 66 @end
67 67
68 68
69 -@interface TZGifPreviewCell : TZAssetPreviewCell  
70 -@property (strong, nonatomic) TZPhotoPreviewView *previewView; 69 +@interface CNTZGifPreviewCell : CNTZAssetPreviewCell
  70 +@property (strong, nonatomic) CNTZPhotoPreviewView *previewView;
71 @end 71 @end
CNLiveImagePickerController/Classes/TZPhotoPreviewCell.m renamed to CNLiveImagePickerController/Classes/CNTZPhotoPreviewCell.m
1 // 1 //
2 -// TZPhotoPreviewCell.m  
3 -// TZImagePickerController 2 +// CNTZPhotoPreviewCell.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZPhotoPreviewCell.h"  
10 -#import "TZAssetModel.h"  
11 -#import "UIView+TZLayout.h"  
12 -#import "TZImageManager.h"  
13 -#import "TZProgressView.h"  
14 -#import "TZImageCropManager.h" 9 +#import "CNTZPhotoPreviewCell.h"
  10 +#import "CNTZAssetModel.h"
  11 +#import "UIView+CNTZLayout.h"
  12 +#import "CNTZImageManager.h"
  13 +#import "CNTZProgressView.h"
  14 +#import "CNTZImageCropManager.h"
15 #import <MediaPlayer/MediaPlayer.h> 15 #import <MediaPlayer/MediaPlayer.h>
16 -#import "TZImagePickerController.h" 16 +#import "CNTZImagePickerController.h"
17 17
18 #pragma mark - TODO: 2019.11.12 需要其他库依赖 18 #pragma mark - TODO: 2019.11.12 需要其他库依赖
19 //#import "CNAudioOrVideoMananger.h" 19 //#import "CNAudioOrVideoMananger.h"
20 //#import "CNLiveSoundManager.h" 20 //#import "CNLiveSoundManager.h"
21 //////////////////////// 21 ////////////////////////
22 -@implementation TZAssetPreviewCell 22 +@implementation CNTZAssetPreviewCell
23 23
24 - (instancetype)initWithFrame:(CGRect)frame { 24 - (instancetype)initWithFrame:(CGRect)frame {
25 self = [super initWithFrame:frame]; 25 self = [super initWithFrame:frame];
@@ -54,10 +54,10 @@ @@ -54,10 +54,10 @@
54 @end 54 @end
55 55
56 56
57 -@implementation TZPhotoPreviewCell 57 +@implementation CNTZPhotoPreviewCell
58 58
59 - (void)configSubviews { 59 - (void)configSubviews {
60 - self.previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero]; 60 + self.previewView = [[CNTZPhotoPreviewView alloc] initWithFrame:CGRectZero];
61 __weak typeof(self) weakSelf = self; 61 __weak typeof(self) weakSelf = self;
62 [self.previewView setSingleTapGestureBlock:^{ 62 [self.previewView setSingleTapGestureBlock:^{
63 __strong typeof(weakSelf) strongSelf = weakSelf; 63 __strong typeof(weakSelf) strongSelf = weakSelf;
@@ -74,7 +74,7 @@ @@ -74,7 +74,7 @@
74 [self addSubview:self.previewView]; 74 [self addSubview:self.previewView];
75 } 75 }
76 76
77 -- (void)setModel:(TZAssetModel *)model { 77 +- (void)setModel:(CNTZAssetModel *)model {
78 [super setModel:model]; 78 [super setModel:model];
79 _previewView.asset = model.asset; 79 _previewView.asset = model.asset;
80 } 80 }
@@ -101,11 +101,11 @@ @@ -101,11 +101,11 @@
101 @end 101 @end
102 102
103 103
104 -@interface TZPhotoPreviewView ()<UIScrollViewDelegate> 104 +@interface CNTZPhotoPreviewView ()<UIScrollViewDelegate>
105 @property (assign, nonatomic) BOOL isRequestingGIF; 105 @property (assign, nonatomic) BOOL isRequestingGIF;
106 @end 106 @end
107 107
108 -@implementation TZPhotoPreviewView 108 +@implementation CNTZPhotoPreviewView
109 109
110 - (instancetype)initWithFrame:(CGRect)frame { 110 - (instancetype)initWithFrame:(CGRect)frame {
111 self = [super initWithFrame:frame]; 111 self = [super initWithFrame:frame];
@@ -152,18 +152,18 @@ @@ -152,18 +152,18 @@
152 } 152 }
153 153
154 - (void)configProgressView { 154 - (void)configProgressView {
155 - _progressView = [[TZProgressView alloc] init]; 155 + _progressView = [[CNTZProgressView alloc] init];
156 _progressView.hidden = YES; 156 _progressView.hidden = YES;
157 [self addSubview:_progressView]; 157 [self addSubview:_progressView];
158 } 158 }
159 159
160 -- (void)setModel:(TZAssetModel *)model { 160 +- (void)setModel:(CNTZAssetModel *)model {
161 _model = model; 161 _model = model;
162 self.isRequestingGIF = NO; 162 self.isRequestingGIF = NO;
163 [_scrollView setZoomScale:1.0 animated:NO]; 163 [_scrollView setZoomScale:1.0 animated:NO];
164 - if (model.type == TZAssetModelMediaTypePhotoGif) { 164 + if (model.type == CNTZAssetModelMediaTypePhotoGif) {
165 // 先显示缩略图 165 // 先显示缩略图
166 - [[TZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 166 + [[CNTZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
167 self.imageView.image = photo; 167 self.imageView.image = photo;
168 [self resizeSubviews]; 168 [self resizeSubviews];
169 if (self.isRequestingGIF) { 169 if (self.isRequestingGIF) {
@@ -171,7 +171,7 @@ @@ -171,7 +171,7 @@
171 } 171 }
172 // 再显示gif动图 172 // 再显示gif动图
173 self.isRequestingGIF = YES; 173 self.isRequestingGIF = YES;
174 - [[TZImageManager manager] getOriginalPhotoDataWithAsset:model.asset progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) { 174 + [[CNTZImageManager manager] getOriginalPhotoDataWithAsset:model.asset progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
175 progress = progress > 0.02 ? progress : 0.02; 175 progress = progress > 0.02 ? progress : 0.02;
176 dispatch_async(dispatch_get_main_queue(), ^{ 176 dispatch_async(dispatch_get_main_queue(), ^{
177 self.progressView.progress = progress; 177 self.progressView.progress = progress;
@@ -182,13 +182,13 @@ @@ -182,13 +182,13 @@
182 } 182 }
183 }); 183 });
184 #ifdef DEBUG 184 #ifdef DEBUG
185 - NSLog(@"[TZImagePickerController] getOriginalPhotoDataWithAsset:%f error:%@", progress, error); 185 + NSLog(@"[CNTZImagePickerController] getOriginalPhotoDataWithAsset:%f error:%@", progress, error);
186 #endif 186 #endif
187 } completion:^(NSData *data, NSDictionary *info, BOOL isDegraded) { 187 } completion:^(NSData *data, NSDictionary *info, BOOL isDegraded) {
188 if (!isDegraded) { 188 if (!isDegraded) {
189 self.isRequestingGIF = NO; 189 self.isRequestingGIF = NO;
190 self.progressView.hidden = YES; 190 self.progressView.hidden = YES;
191 - self.imageView.image = [UIImage sd_tz_animatedGIFWithData:data]; 191 + self.imageView.image = [UIImage sd_CNTZ_animatedGIFWithData:data];
192 [self resizeSubviews]; 192 [self resizeSubviews];
193 } 193 }
194 }]; 194 }];
@@ -204,7 +204,7 @@ @@ -204,7 +204,7 @@
204 } 204 }
205 205
206 _asset = asset; 206 _asset = asset;
207 - self.imageRequestID = [[TZImageManager manager] getPhotoWithAsset:asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 207 + self.imageRequestID = [[CNTZImageManager manager] getPhotoWithAsset:asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
208 if (![asset isEqual:self->_asset]) return; 208 if (![asset isEqual:self->_asset]) return;
209 self.imageView.image = photo; 209 self.imageView.image = photo;
210 [self resizeSubviews]; 210 [self resizeSubviews];
@@ -238,26 +238,26 @@ @@ -238,26 +238,26 @@
238 } 238 }
239 239
240 - (void)resizeSubviews { 240 - (void)resizeSubviews {
241 - _imageContainerView.tz_origin = CGPointZero;  
242 - _imageContainerView.tz_width = self.scrollView.tz_width; 241 + _imageContainerView.CNTZ_origin = CGPointZero;
  242 + _imageContainerView.CNTZ_width = self.scrollView.CNTZ_width;
243 243
244 UIImage *image = _imageView.image; 244 UIImage *image = _imageView.image;
245 - if (image.size.height / image.size.width > self.tz_height / self.scrollView.tz_width) {  
246 - _imageContainerView.tz_height = floor(image.size.height / (image.size.width / self.scrollView.tz_width)); 245 + if (image.size.height / image.size.width > self.CNTZ_height / self.scrollView.CNTZ_width) {
  246 + _imageContainerView.CNTZ_height = floor(image.size.height / (image.size.width / self.scrollView.CNTZ_width));
247 } else { 247 } else {
248 - CGFloat height = image.size.height / image.size.width * self.scrollView.tz_width;  
249 - if (height < 1 || isnan(height)) height = self.tz_height; 248 + CGFloat height = image.size.height / image.size.width * self.scrollView.CNTZ_width;
  249 + if (height < 1 || isnan(height)) height = self.CNTZ_height;
250 height = floor(height); 250 height = floor(height);
251 - _imageContainerView.tz_height = height;  
252 - _imageContainerView.tz_centerY = self.tz_height / 2; 251 + _imageContainerView.CNTZ_height = height;
  252 + _imageContainerView.CNTZ_centerY = self.CNTZ_height / 2;
253 } 253 }
254 - if (_imageContainerView.tz_height > self.tz_height && _imageContainerView.tz_height - self.tz_height <= 1) {  
255 - _imageContainerView.tz_height = self.tz_height; 254 + if (_imageContainerView.CNTZ_height > self.CNTZ_height && _imageContainerView.CNTZ_height - self.CNTZ_height <= 1) {
  255 + _imageContainerView.CNTZ_height = self.CNTZ_height;
256 } 256 }
257 - CGFloat contentSizeH = MAX(_imageContainerView.tz_height, self.tz_height);  
258 - _scrollView.contentSize = CGSizeMake(self.scrollView.tz_width, contentSizeH); 257 + CGFloat contentSizeH = MAX(_imageContainerView.CNTZ_height, self.CNTZ_height);
  258 + _scrollView.contentSize = CGSizeMake(self.scrollView.CNTZ_width, contentSizeH);
259 [_scrollView scrollRectToVisible:self.bounds animated:NO]; 259 [_scrollView scrollRectToVisible:self.bounds animated:NO];
260 - _scrollView.alwaysBounceVertical = _imageContainerView.tz_height <= self.tz_height ? NO : YES; 260 + _scrollView.alwaysBounceVertical = _imageContainerView.CNTZ_height <= self.CNTZ_height ? NO : YES;
261 _imageView.frame = _imageContainerView.bounds; 261 _imageView.frame = _imageContainerView.bounds;
262 262
263 [self refreshScrollViewContentSize]; 263 [self refreshScrollViewContentSize];
@@ -281,10 +281,10 @@ @@ -281,10 +281,10 @@
281 if (_allowCrop) { 281 if (_allowCrop) {
282 // 1.7.2 如果允许裁剪,需要让图片的任意部分都能在裁剪框内,于是对_scrollView做了如下处理: 282 // 1.7.2 如果允许裁剪,需要让图片的任意部分都能在裁剪框内,于是对_scrollView做了如下处理:
283 // 1.让contentSize增大(裁剪框右下角的图片部分) 283 // 1.让contentSize增大(裁剪框右下角的图片部分)
284 - CGFloat contentWidthAdd = self.scrollView.tz_width - CGRectGetMaxX(_cropRect);  
285 - CGFloat contentHeightAdd = (MIN(_imageContainerView.tz_height, self.tz_height) - self.cropRect.size.height) / 2; 284 + CGFloat contentWidthAdd = self.scrollView.CNTZ_width - CGRectGetMaxX(_cropRect);
  285 + CGFloat contentHeightAdd = (MIN(_imageContainerView.CNTZ_height, self.CNTZ_height) - self.cropRect.size.height) / 2;
286 CGFloat newSizeW = self.scrollView.contentSize.width + contentWidthAdd; 286 CGFloat newSizeW = self.scrollView.contentSize.width + contentWidthAdd;
287 - CGFloat newSizeH = MAX(self.scrollView.contentSize.height, self.tz_height) + contentHeightAdd; 287 + CGFloat newSizeH = MAX(self.scrollView.contentSize.height, self.CNTZ_height) + contentHeightAdd;
288 _scrollView.contentSize = CGSizeMake(newSizeW, newSizeH); 288 _scrollView.contentSize = CGSizeMake(newSizeW, newSizeH);
289 _scrollView.alwaysBounceVertical = YES; 289 _scrollView.alwaysBounceVertical = YES;
290 // 2.让scrollView新增滑动区域(裁剪框左上角的图片部分) 290 // 2.让scrollView新增滑动区域(裁剪框左上角的图片部分)
@@ -298,10 +298,10 @@ @@ -298,10 +298,10 @@
298 298
299 - (void)layoutSubviews { 299 - (void)layoutSubviews {
300 [super layoutSubviews]; 300 [super layoutSubviews];
301 - _scrollView.frame = CGRectMake(10, 0, self.tz_width - 20, self.tz_height); 301 + _scrollView.frame = CGRectMake(10, 0, self.CNTZ_width - 20, self.CNTZ_height);
302 static CGFloat progressWH = 40; 302 static CGFloat progressWH = 40;
303 - CGFloat progressX = (self.tz_width - progressWH) / 2;  
304 - CGFloat progressY = (self.tz_height - progressWH) / 2; 303 + CGFloat progressX = (self.CNTZ_width - progressWH) / 2;
  304 + CGFloat progressY = (self.CNTZ_height - progressWH) / 2;
305 _progressView.frame = CGRectMake(progressX, progressY, progressWH, progressWH); 305 _progressView.frame = CGRectMake(progressX, progressY, progressWH, progressWH);
306 306
307 [self recoverSubviews]; 307 [self recoverSubviews];
@@ -349,15 +349,15 @@ @@ -349,15 +349,15 @@
349 #pragma mark - Private 349 #pragma mark - Private
350 350
351 - (void)refreshImageContainerViewCenter { 351 - (void)refreshImageContainerViewCenter {
352 - CGFloat offsetX = (_scrollView.tz_width > _scrollView.contentSize.width) ? ((_scrollView.tz_width - _scrollView.contentSize.width) * 0.5) : 0.0;  
353 - CGFloat offsetY = (_scrollView.tz_height > _scrollView.contentSize.height) ? ((_scrollView.tz_height - _scrollView.contentSize.height) * 0.5) : 0.0; 352 + CGFloat offsetX = (_scrollView.CNTZ_width > _scrollView.contentSize.width) ? ((_scrollView.CNTZ_width - _scrollView.contentSize.width) * 0.5) : 0.0;
  353 + CGFloat offsetY = (_scrollView.CNTZ_height > _scrollView.contentSize.height) ? ((_scrollView.CNTZ_height - _scrollView.contentSize.height) * 0.5) : 0.0;
354 self.imageContainerView.center = CGPointMake(_scrollView.contentSize.width * 0.5 + offsetX, _scrollView.contentSize.height * 0.5 + offsetY); 354 self.imageContainerView.center = CGPointMake(_scrollView.contentSize.width * 0.5 + offsetX, _scrollView.contentSize.height * 0.5 + offsetY);
355 } 355 }
356 356
357 @end 357 @end
358 358
359 359
360 -@implementation TZVideoPreviewCell 360 +@implementation CNTZVideoPreviewCell
361 361
362 - (void)dealloc 362 - (void)dealloc
363 { 363 {
@@ -400,14 +400,14 @@ @@ -400,14 +400,14 @@
400 [_progressView removeFromSuperview]; 400 [_progressView removeFromSuperview];
401 } 401 }
402 402
403 - _progressView = [[TZProgressView alloc]init]; 403 + _progressView = [[CNTZProgressView alloc]init];
404 _progressView.hidden = YES; 404 _progressView.hidden = YES;
405 [self addSubview:_progressView]; 405 [self addSubview:_progressView];
406 406
407 } 407 }
408 408
409 409
410 -- (void)setModel:(TZAssetModel *)model { 410 +- (void)setModel:(CNTZAssetModel *)model {
411 [super setModel:model]; 411 [super setModel:model];
412 [self configMoviePlayer]; 412 [self configMoviePlayer];
413 } 413 }
@@ -427,7 +427,7 @@ @@ -427,7 +427,7 @@
427 } 427 }
428 428
429 __weak typeof(self) weakSelf = self; 429 __weak typeof(self) weakSelf = self;
430 - [[TZImageManager manager] getPhotoWithAsset:self.model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 430 + [[CNTZImageManager manager] getPhotoWithAsset:self.model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
431 NSLog(@"输出图片info = %@",info); 431 NSLog(@"输出图片info = %@",info);
432 /** 获取图片 */ 432 /** 获取图片 */
433 weakSelf.cover = photo; 433 weakSelf.cover = photo;
@@ -441,7 +441,7 @@ @@ -441,7 +441,7 @@
441 441
442 if (self.model.isVideoICloudDownLoad || !self.model.isICloudType) {//已下载 或 不是iCloud 442 if (self.model.isVideoICloudDownLoad || !self.model.isICloudType) {//已下载 或 不是iCloud
443 443
444 - [[TZImageManager manager] getVideoWithAsset:self.model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) { 444 + [[CNTZImageManager manager] getVideoWithAsset:self.model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) {
445 445
446 dispatch_async(dispatch_get_main_queue(), ^{ 446 dispatch_async(dispatch_get_main_queue(), ^{
447 447
@@ -540,7 +540,7 @@ @@ -540,7 +540,7 @@
540 540
541 [self configProgressView];//添加HUD 541 [self configProgressView];//添加HUD
542 542
543 - [[TZImageManager manager] getVideoWithAsset:self.model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) { 543 + [[CNTZImageManager manager] getVideoWithAsset:self.model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) {
544 544
545 NSLog(@"输出视频info = %@",info); 545 NSLog(@"输出视频info = %@",info);
546 546
@@ -654,8 +654,8 @@ @@ -654,8 +654,8 @@
654 - (void)layoutSubviews { 654 - (void)layoutSubviews {
655 [super layoutSubviews]; 655 [super layoutSubviews];
656 _playerLayer.frame = self.bounds; 656 _playerLayer.frame = self.bounds;
657 - _playButton.frame = CGRectMake(0, 64, self.tz_width, self.tz_height - 64 - 44);  
658 - _progressView.frame = CGRectMake((self.tz_width - 50)/2, (self.tz_height - 50)/2 , 50, 50); 657 + _playButton.frame = CGRectMake(0, 64, self.CNTZ_width, self.CNTZ_height - 64 - 44);
  658 + _progressView.frame = CGRectMake((self.CNTZ_width - 50)/2, (self.CNTZ_height - 50)/2 , 50, 50);
659 } 659 }
660 660
661 - (void)photoPreviewCollectionViewDidScroll { 661 - (void)photoPreviewCollectionViewDidScroll {
@@ -723,14 +723,14 @@ @@ -723,14 +723,14 @@
723 @end 723 @end
724 724
725 725
726 -@implementation TZGifPreviewCell 726 +@implementation CNTZGifPreviewCell
727 727
728 - (void)configSubviews { 728 - (void)configSubviews {
729 [self configPreviewView]; 729 [self configPreviewView];
730 } 730 }
731 731
732 - (void)configPreviewView { 732 - (void)configPreviewView {
733 - _previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero]; 733 + _previewView = [[CNTZPhotoPreviewView alloc] initWithFrame:CGRectZero];
734 __weak typeof(self) weakSelf = self; 734 __weak typeof(self) weakSelf = self;
735 [_previewView setSingleTapGestureBlock:^{ 735 [_previewView setSingleTapGestureBlock:^{
736 __strong typeof(weakSelf) strongSelf = weakSelf; 736 __strong typeof(weakSelf) strongSelf = weakSelf;
@@ -739,7 +739,7 @@ @@ -739,7 +739,7 @@
739 [self addSubview:_previewView]; 739 [self addSubview:_previewView];
740 } 740 }
741 741
742 -- (void)setModel:(TZAssetModel *)model { 742 +- (void)setModel:(CNTZAssetModel *)model {
743 [super setModel:model]; 743 [super setModel:model];
744 _previewView.model = self.model; 744 _previewView.model = self.model;
745 } 745 }
CNLiveImagePickerController/Classes/TZPhotoPreviewController.h renamed to CNLiveImagePickerController/Classes/CNTZPhotoPreviewController.h
1 // 1 //
2 -// TZPhotoPreviewController.h  
3 -// TZImagePickerController 2 +// CNTZPhotoPreviewController.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
@@ -13,7 +13,7 @@ typedef enum : NSUInteger { @@ -13,7 +13,7 @@ typedef enum : NSUInteger {
13 PhotoPreviewEnterTypeSelected, 13 PhotoPreviewEnterTypeSelected,
14 } PhotoPreviewEnterType; 14 } PhotoPreviewEnterType;
15 15
16 -@interface TZPhotoPreviewController : UIViewController 16 +@interface CNTZPhotoPreviewController : UIViewController
17 17
18 @property (nonatomic, assign) PhotoPreviewEnterType enterType; 18 @property (nonatomic, assign) PhotoPreviewEnterType enterType;
19 19
CNLiveImagePickerController/Classes/TZPhotoPreviewController.m renamed to CNLiveImagePickerController/Classes/CNTZPhotoPreviewController.m
1 // 1 //
2 -// TZPhotoPreviewController.m  
3 -// TZImagePickerController 2 +// CNTZPhotoPreviewController.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 15/12/24. 5 // Created by 谭真 on 15/12/24.
6 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZPhotoPreviewController.h"  
10 -#import "TZPhotoPreviewCell.h"  
11 -#import "TZAssetModel.h"  
12 -#import "UIView+TZLayout.h"  
13 -#import "TZImagePickerController.h"  
14 -#import "TZImageManager.h"  
15 -#import "TZImageCropManager.h" 9 +#import "CNTZPhotoPreviewController.h"
  10 +#import "CNTZPhotoPreviewCell.h"
  11 +#import "CNTZAssetModel.h"
  12 +#import "UIView+CNTZLayout.h"
  13 +#import "CNTZImagePickerController.h"
  14 +#import "CNTZImageManager.h"
  15 +#import "CNTZImageCropManager.h"
16 #import <AssetsLibrary/AssetsLibrary.h>///lxg 16 #import <AssetsLibrary/AssetsLibrary.h>///lxg
17 #import "CNEditVideoController.h" 17 #import "CNEditVideoController.h"
18 18
19 //#import "CNAudioOrVideoMananger.h" 19 //#import "CNAudioOrVideoMananger.h"
20 //#import "CNLiveSoundManager.h" 20 //#import "CNLiveSoundManager.h"
21 -@interface TZPhotoPreviewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIScrollViewDelegate> { 21 +@interface CNTZPhotoPreviewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIScrollViewDelegate> {
22 UICollectionView *_collectionView; 22 UICollectionView *_collectionView;
23 UICollectionViewFlowLayout *_layout; 23 UICollectionViewFlowLayout *_layout;
24 NSArray *_photosTemp; 24 NSArray *_photosTemp;
@@ -56,18 +56,18 @@ @@ -56,18 +56,18 @@
56 @property (strong, nonatomic) id alertView; 56 @property (strong, nonatomic) id alertView;
57 @end 57 @end
58 58
59 -@implementation TZPhotoPreviewController 59 +@implementation CNTZPhotoPreviewController
60 60
61 - (void)viewDidLoad { 61 - (void)viewDidLoad {
62 [super viewDidLoad]; 62 [super viewDidLoad];
63 - [TZImageManager manager].shouldFixOrientation = YES;  
64 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController; 63 + [CNTZImageManager manager].shouldFixOrientation = YES;
  64 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
65 if (!_didSetIsSelectOriginalPhoto) { 65 if (!_didSetIsSelectOriginalPhoto) {
66 - _isSelectOriginalPhoto = _tzImagePickerVc.isSelectOriginalPhoto; 66 + _isSelectOriginalPhoto = _CNTZImagePickerVc.isSelectOriginalPhoto;
67 } 67 }
68 if (!self.models.count) { 68 if (!self.models.count) {
69 - self.models = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedModels];  
70 - _assetsTemp = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedAssets]; 69 + self.models = [NSMutableArray arrayWithArray:_CNTZImagePickerVc.selectedModels];
  70 + _assetsTemp = [NSMutableArray arrayWithArray:_CNTZImagePickerVc.selectedAssets];
71 } 71 }
72 [self configCollectionView]; 72 [self configCollectionView];
73 [self configCustomNaviBar]; 73 [self configCustomNaviBar];
@@ -97,18 +97,18 @@ @@ -97,18 +97,18 @@
97 97
98 [self.navigationController setNavigationBarHidden:YES animated:YES]; 98 [self.navigationController setNavigationBarHidden:YES animated:YES];
99 if (iOS7Later) [UIApplication sharedApplication].statusBarHidden = YES; 99 if (iOS7Later) [UIApplication sharedApplication].statusBarHidden = YES;
100 - if (_currentIndex) [_collectionView setContentOffset:CGPointMake((self.view.tz_width + 20) * _currentIndex, 0) animated:NO]; 100 + if (_currentIndex) [_collectionView setContentOffset:CGPointMake((self.view.CNTZ_width + 20) * _currentIndex, 0) animated:NO];
101 [self refreshNaviBarAndBottomBarState]; 101 [self refreshNaviBarAndBottomBarState];
102 } 102 }
103 103
104 - (void)viewWillDisappear:(BOOL)animated { 104 - (void)viewWillDisappear:(BOOL)animated {
105 [super viewWillDisappear:animated]; 105 [super viewWillDisappear:animated];
106 [self.navigationController setNavigationBarHidden:NO animated:YES]; 106 [self.navigationController setNavigationBarHidden:NO animated:YES];
107 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
108 - if (tzImagePickerVc.needShowStatusBar && iOS7Later) { 107 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  108 + if (CNTZImagePickerVc.needShowStatusBar && iOS7Later) {
109 [UIApplication sharedApplication].statusBarHidden = NO; 109 [UIApplication sharedApplication].statusBarHidden = NO;
110 } 110 }
111 - [TZImageManager manager].shouldFixOrientation = NO; 111 + [CNTZImageManager manager].shouldFixOrientation = NO;
112 112
113 [[NSNotificationCenter defaultCenter] postNotificationName:@"didViewLoadController" object:nil]; 113 [[NSNotificationCenter defaultCenter] postNotificationName:@"didViewLoadController" object:nil];
114 } 114 }
@@ -118,7 +118,7 @@ @@ -118,7 +118,7 @@
118 } 118 }
119 119
120 - (void)configCustomNaviBar { 120 - (void)configCustomNaviBar {
121 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 121 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
122 122
123 _naviBar = [[UIView alloc] initWithFrame:CGRectZero]; 123 _naviBar = [[UIView alloc] initWithFrame:CGRectZero];
124 _naviBar.backgroundColor = [UIColor colorWithRed:(34/255.0) green:(34/255.0) blue:(34/255.0) alpha:0.7]; 124 _naviBar.backgroundColor = [UIColor colorWithRed:(34/255.0) green:(34/255.0) blue:(34/255.0) alpha:0.7];
@@ -129,13 +129,13 @@ @@ -129,13 +129,13 @@
129 [_backButton addTarget:self action:@selector(backButtonClick) forControlEvents:UIControlEventTouchUpInside]; 129 [_backButton addTarget:self action:@selector(backButtonClick) forControlEvents:UIControlEventTouchUpInside];
130 130
131 _selectButton = [[UIButton alloc] initWithFrame:CGRectZero]; 131 _selectButton = [[UIButton alloc] initWithFrame:CGRectZero];
132 - [_selectButton setImage:tzImagePickerVc.photoDefImage forState:UIControlStateNormal];  
133 - [_selectButton setImage:tzImagePickerVc.photoSelImage forState:UIControlStateSelected]; 132 + [_selectButton setImage:CNTZImagePickerVc.photoDefImage forState:UIControlStateNormal];
  133 + [_selectButton setImage:CNTZImagePickerVc.photoSelImage forState:UIControlStateSelected];
134 _selectButton.imageView.clipsToBounds = YES; 134 _selectButton.imageView.clipsToBounds = YES;
135 _selectButton.imageEdgeInsets = UIEdgeInsetsMake(10, 0, 10, 0); 135 _selectButton.imageEdgeInsets = UIEdgeInsetsMake(10, 0, 10, 0);
136 _selectButton.imageView.contentMode = UIViewContentModeScaleAspectFit; 136 _selectButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
137 [_selectButton addTarget:self action:@selector(select:) forControlEvents:UIControlEventTouchUpInside]; 137 [_selectButton addTarget:self action:@selector(select:) forControlEvents:UIControlEventTouchUpInside];
138 - _selectButton.hidden = !tzImagePickerVc.showSelectBtn; 138 + _selectButton.hidden = !CNTZImagePickerVc.showSelectBtn;
139 139
140 _indexLabel = [[UILabel alloc] init]; 140 _indexLabel = [[UILabel alloc] init];
141 _indexLabel.font = [UIFont systemFontOfSize:14]; 141 _indexLabel.font = [UIFont systemFontOfSize:14];
@@ -177,19 +177,19 @@ @@ -177,19 +177,19 @@
177 static CGFloat rgb = 34 / 255.0; 177 static CGFloat rgb = 34 / 255.0;
178 _toolBar.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:0.7]; 178 _toolBar.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:0.7];
179 179
180 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
181 - if (_tzImagePickerVc.allowPickingOriginalPhoto) { 180 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  181 + if (_CNTZImagePickerVc.allowPickingOriginalPhoto) {
182 _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom]; 182 _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom];
183 _originalPhotoButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0); 183 _originalPhotoButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
184 _originalPhotoButton.backgroundColor = [UIColor clearColor]; 184 _originalPhotoButton.backgroundColor = [UIColor clearColor];
185 [_originalPhotoButton addTarget:self action:@selector(originalPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside]; 185 [_originalPhotoButton addTarget:self action:@selector(originalPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside];
186 _originalPhotoButton.titleLabel.font = [UIFont systemFontOfSize:13]; 186 _originalPhotoButton.titleLabel.font = [UIFont systemFontOfSize:13];
187 - [_originalPhotoButton setTitle:_tzImagePickerVc.fullImageBtnTitleStr forState:UIControlStateNormal];  
188 - [_originalPhotoButton setTitle:_tzImagePickerVc.fullImageBtnTitleStr forState:UIControlStateSelected]; 187 + [_originalPhotoButton setTitle:_CNTZImagePickerVc.fullImageBtnTitleStr forState:UIControlStateNormal];
  188 + [_originalPhotoButton setTitle:_CNTZImagePickerVc.fullImageBtnTitleStr forState:UIControlStateSelected];
189 [_originalPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal]; 189 [_originalPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
190 [_originalPhotoButton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; 190 [_originalPhotoButton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];
191 - [_originalPhotoButton setImage:_tzImagePickerVc.photoPreviewOriginDefImage forState:UIControlStateNormal];  
192 - [_originalPhotoButton setImage:_tzImagePickerVc.photoOriginSelImage forState:UIControlStateSelected]; 191 + [_originalPhotoButton setImage:_CNTZImagePickerVc.photoPreviewOriginDefImage forState:UIControlStateNormal];
  192 + [_originalPhotoButton setImage:_CNTZImagePickerVc.photoOriginSelImage forState:UIControlStateSelected];
193 193
194 _originalPhotoLabel = [[UILabel alloc] init]; 194 _originalPhotoLabel = [[UILabel alloc] init];
195 _originalPhotoLabel.textAlignment = NSTextAlignmentLeft; 195 _originalPhotoLabel.textAlignment = NSTextAlignmentLeft;
@@ -202,26 +202,26 @@ @@ -202,26 +202,26 @@
202 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; 202 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
203 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16]; 203 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
204 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside]; 204 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside];
205 - [_doneButton setTitle:_tzImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];  
206 - [_doneButton setTitleColor:_tzImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal]; 205 + [_doneButton setTitle:_CNTZImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];
  206 + [_doneButton setTitleColor:_CNTZImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal];
207 207
208 - _numberImageView = [[UIImageView alloc] initWithImage:_tzImagePickerVc.photoNumberIconImage]; 208 + _numberImageView = [[UIImageView alloc] initWithImage:_CNTZImagePickerVc.photoNumberIconImage];
209 _numberImageView.backgroundColor = [UIColor clearColor]; 209 _numberImageView.backgroundColor = [UIColor clearColor];
210 _numberImageView.clipsToBounds = YES; 210 _numberImageView.clipsToBounds = YES;
211 _numberImageView.contentMode = UIViewContentModeScaleAspectFit; 211 _numberImageView.contentMode = UIViewContentModeScaleAspectFit;
212 - _numberImageView.hidden = _tzImagePickerVc.selectedModels.count <= 0; 212 + _numberImageView.hidden = _CNTZImagePickerVc.selectedModels.count <= 0;
213 213
214 _numberLabel = [[UILabel alloc] init]; 214 _numberLabel = [[UILabel alloc] init];
215 _numberLabel.font = [UIFont systemFontOfSize:15]; 215 _numberLabel.font = [UIFont systemFontOfSize:15];
216 _numberLabel.textColor = [UIColor whiteColor]; 216 _numberLabel.textColor = [UIColor whiteColor];
217 _numberLabel.textAlignment = NSTextAlignmentCenter; 217 _numberLabel.textAlignment = NSTextAlignmentCenter;
218 - _numberLabel.text = [NSString stringWithFormat:@"%zd",_tzImagePickerVc.selectedModels.count];  
219 - _numberLabel.hidden = _tzImagePickerVc.selectedModels.count <= 0; 218 + _numberLabel.text = [NSString stringWithFormat:@"%zd",_CNTZImagePickerVc.selectedModels.count];
  219 + _numberLabel.hidden = _CNTZImagePickerVc.selectedModels.count <= 0;
220 _numberLabel.backgroundColor = [UIColor clearColor]; 220 _numberLabel.backgroundColor = [UIColor clearColor];
221 #pragma mark - 添加: 选择图片个数显示(LXG) 221 #pragma mark - 添加: 选择图片个数显示(LXG)
222 _numberImageView.hidden = YES; 222 _numberImageView.hidden = YES;
223 _numberLabel.hidden = YES; 223 _numberLabel.hidden = YES;
224 - NSString *titleStr = _tzImagePickerVc.selectedModels.count > 0 ? [NSString stringWithFormat:@"完成(%zd)",_tzImagePickerVc.selectedModels.count] : @"完成"; 224 + NSString *titleStr = _CNTZImagePickerVc.selectedModels.count > 0 ? [NSString stringWithFormat:@"完成(%zd)",_CNTZImagePickerVc.selectedModels.count] : @"完成";
225 [_doneButton setTitle:titleStr forState:UIControlStateNormal]; 225 [_doneButton setTitle:titleStr forState:UIControlStateNormal];
226 226
227 ///LXG 添加视频编辑 227 ///LXG 添加视频编辑
@@ -235,8 +235,8 @@ @@ -235,8 +235,8 @@
235 _editTipButton.titleLabel.font = [UIFont systemFontOfSize:16]; 235 _editTipButton.titleLabel.font = [UIFont systemFontOfSize:16];
236 [_editTipButton addTarget:self action:@selector(editVideoButtonClick) forControlEvents:UIControlEventTouchUpInside]; 236 [_editTipButton addTarget:self action:@selector(editVideoButtonClick) forControlEvents:UIControlEventTouchUpInside];
237 _editTipButton.hidden = YES; 237 _editTipButton.hidden = YES;
238 - [_editTipButton setTitle:_tzImagePickerVc.editBtnTitleStr forState:UIControlStateNormal];  
239 - [_editTipButton setTitleColor:_tzImagePickerVc.editBtnTitleColor forState:UIControlStateNormal]; 238 + [_editTipButton setTitle:_CNTZImagePickerVc.editBtnTitleStr forState:UIControlStateNormal];
  239 + [_editTipButton setTitleColor:_CNTZImagePickerVc.editBtnTitleColor forState:UIControlStateNormal];
240 240
241 [_originalPhotoButton addSubview:_originalPhotoLabel]; 241 [_originalPhotoButton addSubview:_originalPhotoLabel];
242 [_toolBar addSubview:_doneButton]; 242 [_toolBar addSubview:_doneButton];
@@ -247,8 +247,8 @@ @@ -247,8 +247,8 @@
247 [_toolBar addSubview:_editTipButton];///LXG 247 [_toolBar addSubview:_editTipButton];///LXG
248 [self.view addSubview:_toolBar]; 248 [self.view addSubview:_toolBar];
249 249
250 - if (_tzImagePickerVc.photoPreviewPageUIConfigBlock) {  
251 - _tzImagePickerVc.photoPreviewPageUIConfigBlock(_collectionView, _naviBar, _backButton, _selectButton, _indexLabel, _toolBar, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel); 250 + if (_CNTZImagePickerVc.photoPreviewPageUIConfigBlock) {
  251 + _CNTZImagePickerVc.photoPreviewPageUIConfigBlock(_collectionView, _naviBar, _backButton, _selectButton, _indexLabel, _toolBar, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel);
252 } 252 }
253 } 253 }
254 254
@@ -263,16 +263,16 @@ @@ -263,16 +263,16 @@
263 _collectionView.scrollsToTop = NO; 263 _collectionView.scrollsToTop = NO;
264 _collectionView.showsHorizontalScrollIndicator = NO; 264 _collectionView.showsHorizontalScrollIndicator = NO;
265 _collectionView.contentOffset = CGPointMake(0, 0); 265 _collectionView.contentOffset = CGPointMake(0, 0);
266 - _collectionView.contentSize = CGSizeMake(self.models.count * (self.view.tz_width + 20), 0); 266 + _collectionView.contentSize = CGSizeMake(self.models.count * (self.view.CNTZ_width + 20), 0);
267 [self.view addSubview:_collectionView]; 267 [self.view addSubview:_collectionView];
268 - [_collectionView registerClass:[TZPhotoPreviewCell class] forCellWithReuseIdentifier:@"TZPhotoPreviewCell"];  
269 - [_collectionView registerClass:[TZVideoPreviewCell class] forCellWithReuseIdentifier:@"TZVideoPreviewCell"];  
270 - [_collectionView registerClass:[TZGifPreviewCell class] forCellWithReuseIdentifier:@"TZGifPreviewCell"]; 268 + [_collectionView registerClass:[CNTZPhotoPreviewCell class] forCellWithReuseIdentifier:@"CNTZPhotoPreviewCell"];
  269 + [_collectionView registerClass:[CNTZVideoPreviewCell class] forCellWithReuseIdentifier:@"CNTZVideoPreviewCell"];
  270 + [_collectionView registerClass:[CNTZGifPreviewCell class] forCellWithReuseIdentifier:@"CNTZGifPreviewCell"];
271 } 271 }
272 272
273 - (void)configCropView { 273 - (void)configCropView {
274 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
275 - if (_tzImagePickerVc.maxImagesCount <= 1 && _tzImagePickerVc.allowCrop) { 274 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  275 + if (_CNTZImagePickerVc.maxImagesCount <= 1 && _CNTZImagePickerVc.allowCrop) {
276 [_cropView removeFromSuperview]; 276 [_cropView removeFromSuperview];
277 [_cropBgView removeFromSuperview]; 277 [_cropBgView removeFromSuperview];
278 278
@@ -281,21 +281,21 @@ @@ -281,21 +281,21 @@
281 _cropBgView.frame = self.view.bounds; 281 _cropBgView.frame = self.view.bounds;
282 _cropBgView.backgroundColor = [UIColor clearColor]; 282 _cropBgView.backgroundColor = [UIColor clearColor];
283 [self.view addSubview:_cropBgView]; 283 [self.view addSubview:_cropBgView];
284 - [TZImageCropManager overlayClippingWithView:_cropBgView cropRect:_tzImagePickerVc.cropRect containerView:self.view needCircleCrop:_tzImagePickerVc.needCircleCrop]; 284 + [CNTZImageCropManager overlayClippingWithView:_cropBgView cropRect:_CNTZImagePickerVc.cropRect containerView:self.view needCircleCrop:_CNTZImagePickerVc.needCircleCrop];
285 285
286 _cropView = [UIView new]; 286 _cropView = [UIView new];
287 _cropView.userInteractionEnabled = NO; 287 _cropView.userInteractionEnabled = NO;
288 - _cropView.frame = _tzImagePickerVc.cropRect; 288 + _cropView.frame = _CNTZImagePickerVc.cropRect;
289 _cropView.backgroundColor = [UIColor clearColor]; 289 _cropView.backgroundColor = [UIColor clearColor];
290 _cropView.layer.borderColor = [UIColor whiteColor].CGColor; 290 _cropView.layer.borderColor = [UIColor whiteColor].CGColor;
291 _cropView.layer.borderWidth = 1.0; 291 _cropView.layer.borderWidth = 1.0;
292 - if (_tzImagePickerVc.needCircleCrop) {  
293 - _cropView.layer.cornerRadius = _tzImagePickerVc.cropRect.size.width / 2; 292 + if (_CNTZImagePickerVc.needCircleCrop) {
  293 + _cropView.layer.cornerRadius = _CNTZImagePickerVc.cropRect.size.width / 2;
294 _cropView.clipsToBounds = YES; 294 _cropView.clipsToBounds = YES;
295 } 295 }
296 [self.view addSubview:_cropView]; 296 [self.view addSubview:_cropView];
297 - if (_tzImagePickerVc.cropViewSettingBlock) {  
298 - _tzImagePickerVc.cropViewSettingBlock(_cropView); 297 + if (_CNTZImagePickerVc.cropViewSettingBlock) {
  298 + _CNTZImagePickerVc.cropViewSettingBlock(_cropView);
299 } 299 }
300 300
301 [self.view bringSubviewToFront:_naviBar]; 301 [self.view bringSubviewToFront:_naviBar];
@@ -308,56 +308,56 @@ @@ -308,56 +308,56 @@
308 308
309 - (void)viewDidLayoutSubviews { 309 - (void)viewDidLayoutSubviews {
310 [super viewDidLayoutSubviews]; 310 [super viewDidLayoutSubviews];
311 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController; 311 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
312 312
313 - CGFloat statusBarHeight = [TZCommonTools tz_statusBarHeight]; 313 + CGFloat statusBarHeight = [CNTZCommonTools CNTZ_statusBarHeight];
314 CGFloat statusBarHeightInterval = statusBarHeight - 20; 314 CGFloat statusBarHeightInterval = statusBarHeight - 20;
315 - CGFloat naviBarHeight = statusBarHeight + _tzImagePickerVc.navigationBar.tz_height;  
316 - _naviBar.frame = CGRectMake(0, 0, self.view.tz_width, naviBarHeight); 315 + CGFloat naviBarHeight = statusBarHeight + _CNTZImagePickerVc.navigationBar.CNTZ_height;
  316 + _naviBar.frame = CGRectMake(0, 0, self.view.CNTZ_width, naviBarHeight);
317 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44); 317 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44);
318 - _selectButton.frame = CGRectMake(self.view.tz_width - 56, 10 + statusBarHeightInterval, 44, 44); 318 + _selectButton.frame = CGRectMake(self.view.CNTZ_width - 56, 10 + statusBarHeightInterval, 44, 44);
319 _indexLabel.frame = _selectButton.frame; 319 _indexLabel.frame = _selectButton.frame;
320 - _navBarLine.frame = CGRectMake(0, _naviBar.tz_height - 0.5, _naviBar.tz_width, 0.5); 320 + _navBarLine.frame = CGRectMake(0, _naviBar.CNTZ_height - 0.5, _naviBar.CNTZ_width, 0.5);
321 321
322 ///Lxg 提示视图约束 322 ///Lxg 提示视图约束
323 - CGFloat tipBarHeight = _tzImagePickerVc.navigationBar.tz_height;  
324 - _tipBar.frame = CGRectMake(0, _naviBar.tz_bottom, _naviBar.tz_width, tipBarHeight);  
325 - _tipContentLabel.frame = CGRectMake(12, 0, _tipBar.tz_width - 24, tipBarHeight); 323 + CGFloat tipBarHeight = _CNTZImagePickerVc.navigationBar.CNTZ_height;
  324 + _tipBar.frame = CGRectMake(0, _naviBar.CNTZ_bottom, _naviBar.CNTZ_width, tipBarHeight);
  325 + _tipContentLabel.frame = CGRectMake(12, 0, _tipBar.CNTZ_width - 24, tipBarHeight);
326 326
327 - _layout.itemSize = CGSizeMake(self.view.tz_width + 20, self.view.tz_height); 327 + _layout.itemSize = CGSizeMake(self.view.CNTZ_width + 20, self.view.CNTZ_height);
328 _layout.minimumInteritemSpacing = 0; 328 _layout.minimumInteritemSpacing = 0;
329 _layout.minimumLineSpacing = 0; 329 _layout.minimumLineSpacing = 0;
330 - _collectionView.frame = CGRectMake(-10, 0, self.view.tz_width + 20, self.view.tz_height); 330 + _collectionView.frame = CGRectMake(-10, 0, self.view.CNTZ_width + 20, self.view.CNTZ_height);
331 [_collectionView setCollectionViewLayout:_layout]; 331 [_collectionView setCollectionViewLayout:_layout];
332 if (_offsetItemCount > 0) { 332 if (_offsetItemCount > 0) {
333 CGFloat offsetX = _offsetItemCount * _layout.itemSize.width; 333 CGFloat offsetX = _offsetItemCount * _layout.itemSize.width;
334 [_collectionView setContentOffset:CGPointMake(offsetX, 0)]; 334 [_collectionView setContentOffset:CGPointMake(offsetX, 0)];
335 } 335 }
336 - if (_tzImagePickerVc.allowCrop) { 336 + if (_CNTZImagePickerVc.allowCrop) {
337 [_collectionView reloadData]; 337 [_collectionView reloadData];
338 } 338 }
339 339
340 - CGFloat toolBarHeight = [TZCommonTools tz_isIPhoneX] ? 44 + (83 - 49) : 44;  
341 - CGFloat toolBarTop = self.view.tz_height - toolBarHeight;  
342 - _toolBar.frame = CGRectMake(0, toolBarTop, self.view.tz_width, toolBarHeight);  
343 - if (_tzImagePickerVc.allowPickingOriginalPhoto) {  
344 - CGFloat fullImageWidth = [_tzImagePickerVc.fullImageBtnTitleStr tz_calculateSizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} maxSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width; 340 + CGFloat toolBarHeight = [CNTZCommonTools CNTZ_isIPhoneX] ? 44 + (83 - 49) : 44;
  341 + CGFloat toolBarTop = self.view.CNTZ_height - toolBarHeight;
  342 + _toolBar.frame = CGRectMake(0, toolBarTop, self.view.CNTZ_width, toolBarHeight);
  343 + if (_CNTZImagePickerVc.allowPickingOriginalPhoto) {
  344 + CGFloat fullImageWidth = [_CNTZImagePickerVc.fullImageBtnTitleStr CNTZ_calculateSizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} maxSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)].width;
345 _originalPhotoButton.frame = CGRectMake(0, 0, fullImageWidth + 56, 44); 345 _originalPhotoButton.frame = CGRectMake(0, 0, fullImageWidth + 56, 44);
346 _originalPhotoLabel.frame = CGRectMake(fullImageWidth + 42, 0, 80, 44); 346 _originalPhotoLabel.frame = CGRectMake(fullImageWidth + 42, 0, 80, 44);
347 } 347 }
348 [_doneButton sizeToFit]; 348 [_doneButton sizeToFit];
349 - _doneButton.frame = CGRectMake(self.view.tz_width - _doneButton.tz_width - 12, 0, _doneButton.tz_width, 44);  
350 - _numberImageView.frame = CGRectMake(_doneButton.tz_left - 24 - 5, 10, 24, 24); 349 + _doneButton.frame = CGRectMake(self.view.CNTZ_width - _doneButton.CNTZ_width - 12, 0, _doneButton.CNTZ_width, 44);
  350 + _numberImageView.frame = CGRectMake(_doneButton.CNTZ_left - 24 - 5, 10, 24, 24);
351 _numberLabel.frame = _numberImageView.frame; 351 _numberLabel.frame = _numberImageView.frame;
352 ///LXG 352 ///LXG
353 [_editTipButton sizeToFit]; 353 [_editTipButton sizeToFit];
354 - _editTipButton.frame = CGRectMake(self.view.tz_width - 44 - 12, 0, 44, 44);  
355 - _editTipLable.frame = CGRectMake(12, 10, self.view.tz_width - 24 - _editTipButton.tz_width, 24); 354 + _editTipButton.frame = CGRectMake(self.view.CNTZ_width - 44 - 12, 0, 44, 44);
  355 + _editTipLable.frame = CGRectMake(12, 10, self.view.CNTZ_width - 24 - _editTipButton.CNTZ_width, 24);
356 356
357 [self configCropView]; 357 [self configCropView];
358 358
359 - if (_tzImagePickerVc.photoPreviewPageDidLayoutSubviewsBlock) {  
360 - _tzImagePickerVc.photoPreviewPageDidLayoutSubviewsBlock(_collectionView, _naviBar, _backButton, _selectButton, _indexLabel, _toolBar, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel); 359 + if (_CNTZImagePickerVc.photoPreviewPageDidLayoutSubviewsBlock) {
  360 + _CNTZImagePickerVc.photoPreviewPageDidLayoutSubviewsBlock(_collectionView, _naviBar, _backButton, _selectButton, _indexLabel, _toolBar, _originalPhotoButton, _originalPhotoLabel, _doneButton, _numberImageView, _numberLabel);
361 } 361 }
362 } 362 }
363 363
@@ -374,8 +374,8 @@ @@ -374,8 +374,8 @@
374 #pragma mark - Click Event 374 #pragma mark - Click Event
375 375
376 - (void)select:(UIButton *)selectButton { 376 - (void)select:(UIButton *)selectButton {
377 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
378 - TZAssetModel *model = _models[_currentIndex]; 377 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  378 + CNTZAssetModel *model = _models[_currentIndex];
379 ///LXG:加入当点击选择时 滑动到另一个页面 选中为当前页面判断是否可选 379 ///LXG:加入当点击选择时 滑动到另一个页面 选中为当前页面判断是否可选
380 if (!selectButton.enabled) { 380 if (!selectButton.enabled) {
381 return; 381 return;
@@ -383,46 +383,46 @@ @@ -383,46 +383,46 @@
383 383
384 if (!selectButton.isSelected) { 384 if (!selectButton.isSelected) {
385 // 1. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制 385 // 1. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制
386 - if (_tzImagePickerVc.selectedModels.count >= _tzImagePickerVc.maxImagesCount) {  
387 - NSString *title = [NSString stringWithFormat:[NSBundle tz_localizedStringForKey:@"Select a maximum of %zd photos"], _tzImagePickerVc.maxImagesCount];  
388 - [_tzImagePickerVc showAlertWithTitle:title]; 386 + if (_CNTZImagePickerVc.selectedModels.count >= _CNTZImagePickerVc.maxImagesCount) {
  387 + NSString *title = [NSString stringWithFormat:[NSBundle CNTZ_localizedStringForKey:@"Select a maximum of %zd photos"], _CNTZImagePickerVc.maxImagesCount];
  388 + [_CNTZImagePickerVc showAlertWithTitle:title];
389 return; 389 return;
390 // 2. if not over the maxImagesCount / 如果没有超过最大个数限制 390 // 2. if not over the maxImagesCount / 如果没有超过最大个数限制
391 } else { 391 } else {
392 - [_tzImagePickerVc addSelectedModel:model]; 392 + [_CNTZImagePickerVc addSelectedModel:model];
393 if (self.photos) { 393 if (self.photos) {
394 - [_tzImagePickerVc.selectedAssets addObject:_assetsTemp[_currentIndex]]; 394 + [_CNTZImagePickerVc.selectedAssets addObject:_assetsTemp[_currentIndex]];
395 [self.photos addObject:_photosTemp[_currentIndex]]; 395 [self.photos addObject:_photosTemp[_currentIndex]];
396 } 396 }
397 - if (model.type == TZAssetModelMediaTypeVideo && !_tzImagePickerVc.allowPickingMultipleVideo) {  
398 - [_tzImagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Select the video when in multi state, we will handle the video as a photo"]]; 397 + if (model.type == CNTZAssetModelMediaTypeVideo && !_CNTZImagePickerVc.allowPickingMultipleVideo) {
  398 + [_CNTZImagePickerVc showAlertWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Select the video when in multi state, we will handle the video as a photo"]];
399 } 399 }
400 } 400 }
401 } else { 401 } else {
402 - NSArray *selectedModels = [NSArray arrayWithArray:_tzImagePickerVc.selectedModels];  
403 - for (TZAssetModel *model_item in selectedModels) {  
404 - if ([[[TZImageManager manager] getAssetIdentifier:model.asset] isEqualToString:[[TZImageManager manager] getAssetIdentifier:model_item.asset]]) { 402 + NSArray *selectedModels = [NSArray arrayWithArray:_CNTZImagePickerVc.selectedModels];
  403 + for (CNTZAssetModel *model_item in selectedModels) {
  404 + if ([[[CNTZImageManager manager] getAssetIdentifier:model.asset] isEqualToString:[[CNTZImageManager manager] getAssetIdentifier:model_item.asset]]) {
405 // 1.6.7版本更新:防止有多个一样的model,一次性被移除了 405 // 1.6.7版本更新:防止有多个一样的model,一次性被移除了
406 - NSArray *selectedModelsTmp = [NSArray arrayWithArray:_tzImagePickerVc.selectedModels]; 406 + NSArray *selectedModelsTmp = [NSArray arrayWithArray:_CNTZImagePickerVc.selectedModels];
407 for (NSInteger i = 0; i < selectedModelsTmp.count; i++) { 407 for (NSInteger i = 0; i < selectedModelsTmp.count; i++) {
408 - TZAssetModel *model = selectedModelsTmp[i]; 408 + CNTZAssetModel *model = selectedModelsTmp[i];
409 if ([model isEqual:model_item]) { 409 if ([model isEqual:model_item]) {
410 - [_tzImagePickerVc removeSelectedModel:model];  
411 - // [_tzImagePickerVc.selectedModels removeObjectAtIndex:i]; 410 + [_CNTZImagePickerVc removeSelectedModel:model];
  411 + // [_CNTZImagePickerVc.selectedModels removeObjectAtIndex:i];
412 break; 412 break;
413 } 413 }
414 } 414 }
415 if (self.photos) { 415 if (self.photos) {
416 // 1.6.7版本更新:防止有多个一样的asset,一次性被移除了 416 // 1.6.7版本更新:防止有多个一样的asset,一次性被移除了
417 - NSArray *selectedAssetsTmp = [NSArray arrayWithArray:_tzImagePickerVc.selectedAssets]; 417 + NSArray *selectedAssetsTmp = [NSArray arrayWithArray:_CNTZImagePickerVc.selectedAssets];
418 for (NSInteger i = 0; i < selectedAssetsTmp.count; i++) { 418 for (NSInteger i = 0; i < selectedAssetsTmp.count; i++) {
419 id asset = selectedAssetsTmp[i]; 419 id asset = selectedAssetsTmp[i];
420 if ([asset isEqual:_assetsTemp[_currentIndex]]) { 420 if ([asset isEqual:_assetsTemp[_currentIndex]]) {
421 - [_tzImagePickerVc.selectedAssets removeObjectAtIndex:i]; 421 + [_CNTZImagePickerVc.selectedAssets removeObjectAtIndex:i];
422 break; 422 break;
423 } 423 }
424 } 424 }
425 - // [_tzImagePickerVc.selectedAssets removeObject:_assetsTemp[_currentIndex]]; 425 + // [_CNTZImagePickerVc.selectedAssets removeObject:_assetsTemp[_currentIndex]];
426 [self.photos removeObject:_photosTemp[_currentIndex]]; 426 [self.photos removeObject:_photosTemp[_currentIndex]];
427 } 427 }
428 break; 428 break;
@@ -433,17 +433,17 @@ @@ -433,17 +433,17 @@
433 model.isSelected = !selectButton.isSelected; 433 model.isSelected = !selectButton.isSelected;
434 [self refreshNaviBarAndBottomBarState]; 434 [self refreshNaviBarAndBottomBarState];
435 if (model.isSelected) { 435 if (model.isSelected) {
436 - [UIView showOscillatoryAnimationWithLayer:selectButton.imageView.layer type:TZOscillatoryAnimationToBigger]; 436 + [UIView showOscillatoryAnimationWithLayer:selectButton.imageView.layer type:CNTZOscillatoryAnimationToBigger];
437 } 437 }
438 - [UIView showOscillatoryAnimationWithLayer:_numberImageView.layer type:TZOscillatoryAnimationToSmaller]; 438 + [UIView showOscillatoryAnimationWithLayer:_numberImageView.layer type:CNTZOscillatoryAnimationToSmaller];
439 439
440 } 440 }
441 441
442 - (void)backButtonClick { 442 - (void)backButtonClick {
443 if (self.navigationController.childViewControllers.count < 2) { 443 if (self.navigationController.childViewControllers.count < 2) {
444 [self.navigationController dismissViewControllerAnimated:YES completion:nil]; 444 [self.navigationController dismissViewControllerAnimated:YES completion:nil];
445 - if ([self.navigationController isKindOfClass: [TZImagePickerController class]]) {  
446 - TZImagePickerController *nav = (TZImagePickerController *)self.navigationController; 445 + if ([self.navigationController isKindOfClass: [CNTZImagePickerController class]]) {
  446 + CNTZImagePickerController *nav = (CNTZImagePickerController *)self.navigationController;
447 if (nav.imagePickerControllerDidCancelHandle) { 447 if (nav.imagePickerControllerDidCancelHandle) {
448 nav.imagePickerControllerDidCancelHandle(); 448 nav.imagePickerControllerDidCancelHandle();
449 } 449 }
@@ -458,27 +458,27 @@ @@ -458,27 +458,27 @@
458 458
459 #pragma mark - TODO: 导出done 459 #pragma mark - TODO: 导出done
460 - (void)doneButtonClick { 460 - (void)doneButtonClick {
461 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController; 461 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
462 // 如果图片正在从iCloud同步中,提醒用户 462 // 如果图片正在从iCloud同步中,提醒用户
463 - if (_progress > 0 && _progress < 1 && (_selectButton.isSelected || !_tzImagePickerVc.selectedModels.count )) {  
464 - _alertView = [_tzImagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Synchronizing photos from iCloud"]]; 463 + if (_progress > 0 && _progress < 1 && (_selectButton.isSelected || !_CNTZImagePickerVc.selectedModels.count )) {
  464 + _alertView = [_CNTZImagePickerVc showAlertWithTitle:[NSBundle CNTZ_localizedStringForKey:@"Synchronizing photos from iCloud"]];
465 return; 465 return;
466 } 466 }
467 467
468 // 如果没有选中过照片 点击确定时选中当前预览的照片 468 // 如果没有选中过照片 点击确定时选中当前预览的照片
469 - if (_tzImagePickerVc.selectedModels.count == 0 && _tzImagePickerVc.minImagesCount <= 0) {  
470 - TZAssetModel *model = _models[_currentIndex];  
471 - [_tzImagePickerVc addSelectedModel:model]; 469 + if (_CNTZImagePickerVc.selectedModels.count == 0 && _CNTZImagePickerVc.minImagesCount <= 0) {
  470 + CNTZAssetModel *model = _models[_currentIndex];
  471 + [_CNTZImagePickerVc addSelectedModel:model];
472 } 472 }
473 - if (_tzImagePickerVc.allowCrop) { // 裁剪状态 473 + if (_CNTZImagePickerVc.allowCrop) { // 裁剪状态
474 NSIndexPath *indexPath = [NSIndexPath indexPathForItem:_currentIndex inSection:0]; 474 NSIndexPath *indexPath = [NSIndexPath indexPathForItem:_currentIndex inSection:0];
475 - TZPhotoPreviewCell *cell = (TZPhotoPreviewCell *)[_collectionView cellForItemAtIndexPath:indexPath];  
476 - UIImage *cropedImage = [TZImageCropManager cropImageView:cell.previewView.imageView toRect:_tzImagePickerVc.cropRect zoomScale:cell.previewView.scrollView.zoomScale containerView:self.view];  
477 - if (_tzImagePickerVc.needCircleCrop) {  
478 - cropedImage = [TZImageCropManager circularClipImage:cropedImage]; 475 + CNTZPhotoPreviewCell *cell = (CNTZPhotoPreviewCell *)[_collectionView cellForItemAtIndexPath:indexPath];
  476 + UIImage *cropedImage = [CNTZImageCropManager cropImageView:cell.previewView.imageView toRect:_CNTZImagePickerVc.cropRect zoomScale:cell.previewView.scrollView.zoomScale containerView:self.view];
  477 + if (_CNTZImagePickerVc.needCircleCrop) {
  478 + cropedImage = [CNTZImageCropManager circularClipImage:cropedImage];
479 } 479 }
480 if (self.doneButtonClickBlockCropMode) { 480 if (self.doneButtonClickBlockCropMode) {
481 - TZAssetModel *model = _models[_currentIndex]; 481 + CNTZAssetModel *model = _models[_currentIndex];
482 self.doneButtonClickBlockCropMode(cropedImage,model.asset); 482 self.doneButtonClickBlockCropMode(cropedImage,model.asset);
483 483
484 } 484 }
@@ -486,7 +486,7 @@ @@ -486,7 +486,7 @@
486 self.doneButtonClickBlock(_isSelectOriginalPhoto); 486 self.doneButtonClickBlock(_isSelectOriginalPhoto);
487 } 487 }
488 if (self.doneButtonClickBlockWithPreviewType) { 488 if (self.doneButtonClickBlockWithPreviewType) {
489 - self.doneButtonClickBlockWithPreviewType(self.photos,_tzImagePickerVc.selectedAssets,self.isSelectOriginalPhoto); 489 + self.doneButtonClickBlockWithPreviewType(self.photos,_CNTZImagePickerVc.selectedAssets,self.isSelectOriginalPhoto);
490 } 490 }
491 } 491 }
492 492
@@ -506,9 +506,9 @@ @@ -506,9 +506,9 @@
506 // [[CNLiveSoundManager sharedInstance] audioOrVideoCalling]; 506 // [[CNLiveSoundManager sharedInstance] audioOrVideoCalling];
507 507
508 NSLog(@"开始编辑视频了"); 508 NSLog(@"开始编辑视频了");
509 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController; 509 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
510 CNEditVideoController *editVideoVC = [[CNEditVideoController alloc]init]; 510 CNEditVideoController *editVideoVC = [[CNEditVideoController alloc]init];
511 - TZAssetModel *model = _models[_currentIndex]; 511 + CNTZAssetModel *model = _models[_currentIndex];
512 editVideoVC.model = model; 512 editVideoVC.model = model;
513 editVideoVC.models = _models; 513 editVideoVC.models = _models;
514 editVideoVC.currentIndex = _currentIndex; 514 editVideoVC.currentIndex = _currentIndex;
@@ -521,7 +521,7 @@ @@ -521,7 +521,7 @@
521 521
522 }; 522 };
523 523
524 - [_tzImagePickerVc pushViewController:editVideoVC animated:NO]; 524 + [_CNTZImagePickerVc pushViewController:editVideoVC animated:NO];
525 } 525 }
526 526
527 - (void)originalPhotoButtonClick { 527 - (void)originalPhotoButtonClick {
@@ -532,8 +532,8 @@ @@ -532,8 +532,8 @@
532 [self showPhotoBytes]; 532 [self showPhotoBytes];
533 if (!_selectButton.isSelected) { 533 if (!_selectButton.isSelected) {
534 // 如果当前已选择照片张数 < 最大可选张数 && 最大可选张数大于1,就选中该张图 534 // 如果当前已选择照片张数 < 最大可选张数 && 最大可选张数大于1,就选中该张图
535 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
536 - if (_tzImagePickerVc.selectedModels.count < _tzImagePickerVc.maxImagesCount && _tzImagePickerVc.showSelectBtn) { 535 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  536 + if (_CNTZImagePickerVc.selectedModels.count < _CNTZImagePickerVc.maxImagesCount && _CNTZImagePickerVc.showSelectBtn) {
537 [self select:_selectButton]; 537 [self select:_selectButton];
538 } 538 }
539 } 539 }
@@ -557,9 +557,9 @@ @@ -557,9 +557,9 @@
557 557
558 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { 558 - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
559 CGFloat offSetWidth = scrollView.contentOffset.x; 559 CGFloat offSetWidth = scrollView.contentOffset.x;
560 - offSetWidth = offSetWidth + ((self.view.tz_width + 20) * 0.5); 560 + offSetWidth = offSetWidth + ((self.view.CNTZ_width + 20) * 0.5);
561 561
562 - NSInteger currentIndex = offSetWidth / (self.view.tz_width + 20); 562 + NSInteger currentIndex = offSetWidth / (self.view.CNTZ_width + 20);
563 563
564 if (currentIndex < _models.count && _currentIndex != currentIndex) { 564 if (currentIndex < _models.count && _currentIndex != currentIndex) {
565 _currentIndex = currentIndex; 565 _currentIndex = currentIndex;
@@ -576,42 +576,42 @@ @@ -576,42 +576,42 @@
576 } 576 }
577 577
578 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 578 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
579 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
580 - TZAssetModel *model = _models[indexPath.item]; 579 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  580 + CNTZAssetModel *model = _models[indexPath.item];
581 581
582 - TZAssetPreviewCell *cell; 582 + CNTZAssetPreviewCell *cell;
583 __weak typeof(self) weakSelf = self; 583 __weak typeof(self) weakSelf = self;
584 #pragma mark - 更改视频,GIF,显示 584 #pragma mark - 更改视频,GIF,显示
585 - if (model.type == TZAssetModelMediaTypeVideo) {  
586 - cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TZVideoPreviewCell" forIndexPath:indexPath];  
587 - TZVideoPreviewCell *videoCell = (TZVideoPreviewCell *)cell; 585 + if (model.type == CNTZAssetModelMediaTypeVideo) {
  586 + cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CNTZVideoPreviewCell" forIndexPath:indexPath];
  587 + CNTZVideoPreviewCell *videoCell = (CNTZVideoPreviewCell *)cell;
588 588
589 - videoCell.imageProgressUpdateBlock = ^(TZVideoPreviewCell *cell) { 589 + videoCell.imageProgressUpdateBlock = ^(CNTZVideoPreviewCell *cell) {
590 NSLog(@"输出是否icloud的状态"); 590 NSLog(@"输出是否icloud的状态");
591 dispatch_async(dispatch_get_main_queue(), ^{ 591 dispatch_async(dispatch_get_main_queue(), ^{
592 [weakSelf refreshNaviBarAndBottomBarState]; 592 [weakSelf refreshNaviBarAndBottomBarState];
593 }); 593 });
594 }; 594 };
595 - } else if (model.type == TZAssetModelMediaTypePhotoGif && _tzImagePickerVc.allowPickingGif) {  
596 - cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TZGifPreviewCell" forIndexPath:indexPath]; 595 + } else if (model.type == CNTZAssetModelMediaTypePhotoGif && _CNTZImagePickerVc.allowPickingGif) {
  596 + cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CNTZGifPreviewCell" forIndexPath:indexPath];
597 } else { 597 } else {
598 - cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TZPhotoPreviewCell" forIndexPath:indexPath];  
599 - TZPhotoPreviewCell *photoPreviewCell = (TZPhotoPreviewCell *)cell;  
600 - photoPreviewCell.cropRect = _tzImagePickerVc.cropRect;  
601 - photoPreviewCell.allowCrop = _tzImagePickerVc.allowCrop;  
602 - __weak typeof(_tzImagePickerVc) weakTzImagePickerVc = _tzImagePickerVc; 598 + cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CNTZPhotoPreviewCell" forIndexPath:indexPath];
  599 + CNTZPhotoPreviewCell *photoPreviewCell = (CNTZPhotoPreviewCell *)cell;
  600 + photoPreviewCell.cropRect = _CNTZImagePickerVc.cropRect;
  601 + photoPreviewCell.allowCrop = _CNTZImagePickerVc.allowCrop;
  602 + __weak typeof(_CNTZImagePickerVc) weakCNTZImagePickerVc = _CNTZImagePickerVc;
603 __weak typeof(_collectionView) weakCollectionView = _collectionView; 603 __weak typeof(_collectionView) weakCollectionView = _collectionView;
604 __weak typeof(photoPreviewCell) weakCell = photoPreviewCell; 604 __weak typeof(photoPreviewCell) weakCell = photoPreviewCell;
605 [photoPreviewCell setImageProgressUpdateBlock:^(double progress) { 605 [photoPreviewCell setImageProgressUpdateBlock:^(double progress) {
606 __strong typeof(weakSelf) strongSelf = weakSelf; 606 __strong typeof(weakSelf) strongSelf = weakSelf;
607 - __strong typeof(weakTzImagePickerVc) strongTzImagePickerVc = weakTzImagePickerVc; 607 + __strong typeof(weakCNTZImagePickerVc) strongCNTZImagePickerVc = weakCNTZImagePickerVc;
608 __strong typeof(weakCollectionView) strongCollectionView = weakCollectionView; 608 __strong typeof(weakCollectionView) strongCollectionView = weakCollectionView;
609 __strong typeof(weakCell) strongCell = weakCell; 609 __strong typeof(weakCell) strongCell = weakCell;
610 strongSelf.progress = progress; 610 strongSelf.progress = progress;
611 if (progress >= 1) { 611 if (progress >= 1) {
612 if (strongSelf.isSelectOriginalPhoto) [strongSelf showPhotoBytes]; 612 if (strongSelf.isSelectOriginalPhoto) [strongSelf showPhotoBytes];
613 if (strongSelf.alertView && [strongCollectionView.visibleCells containsObject:strongCell]) { 613 if (strongSelf.alertView && [strongCollectionView.visibleCells containsObject:strongCell]) {
614 - [strongTzImagePickerVc hideAlertView:strongSelf.alertView]; 614 + [strongCNTZImagePickerVc hideAlertView:strongSelf.alertView];
615 strongSelf.alertView = nil; 615 strongSelf.alertView = nil;
616 [strongSelf doneButtonClick]; 616 [strongSelf doneButtonClick];
617 } 617 }
@@ -628,16 +628,16 @@ @@ -628,16 +628,16 @@
628 } 628 }
629 629
630 - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { 630 - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
631 - if ([cell isKindOfClass:[TZPhotoPreviewCell class]]) {  
632 - [(TZPhotoPreviewCell *)cell recoverSubviews]; 631 + if ([cell isKindOfClass:[CNTZPhotoPreviewCell class]]) {
  632 + [(CNTZPhotoPreviewCell *)cell recoverSubviews];
633 } 633 }
634 } 634 }
635 635
636 - (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { 636 - (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
637 - if ([cell isKindOfClass:[TZPhotoPreviewCell class]]) {  
638 - [(TZPhotoPreviewCell *)cell recoverSubviews];  
639 - } else if ([cell isKindOfClass:[TZVideoPreviewCell class]]) {  
640 - [(TZVideoPreviewCell *)cell pausePlayerAndShowNaviBar]; 637 + if ([cell isKindOfClass:[CNTZPhotoPreviewCell class]]) {
  638 + [(CNTZPhotoPreviewCell *)cell recoverSubviews];
  639 + } else if ([cell isKindOfClass:[CNTZVideoPreviewCell class]]) {
  640 + [(CNTZVideoPreviewCell *)cell pausePlayerAndShowNaviBar];
641 } 641 }
642 } 642 }
643 643
@@ -645,35 +645,35 @@ @@ -645,35 +645,35 @@
645 645
646 - (void)dealloc { 646 - (void)dealloc {
647 // NSLog(@"%@ dealloc",NSStringFromClass(self.class)); 647 // NSLog(@"%@ dealloc",NSStringFromClass(self.class));
648 - NSLog(@"相册_详情_TZPhotoPreviewController_dealloc"); 648 + NSLog(@"相册_详情_CNTZPhotoPreviewController_dealloc");
649 649
650 650
651 } 651 }
652 652
653 - (void)refreshNaviBarAndBottomBarState { 653 - (void)refreshNaviBarAndBottomBarState {
654 654
655 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController; 655 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
656 656
657 - TZAssetModel *model = _models[_currentIndex]; 657 + CNTZAssetModel *model = _models[_currentIndex];
658 _selectButton.selected = model.isSelected; 658 _selectButton.selected = model.isSelected;
659 [self refreshSelectButtonImageViewContentMode]; 659 [self refreshSelectButtonImageViewContentMode];
660 - if (_selectButton.isSelected && _tzImagePickerVc.showSelectedIndex && _tzImagePickerVc.showSelectBtn) {  
661 - NSString *assetId = [[TZImageManager manager] getAssetIdentifier:model.asset];  
662 - NSString *index = [NSString stringWithFormat:@"%zd", [_tzImagePickerVc.selectedAssetIds indexOfObject:assetId] + 1]; 660 + if (_selectButton.isSelected && _CNTZImagePickerVc.showSelectedIndex && _CNTZImagePickerVc.showSelectBtn) {
  661 + NSString *assetId = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
  662 + NSString *index = [NSString stringWithFormat:@"%zd", [_CNTZImagePickerVc.selectedAssetIds indexOfObject:assetId] + 1];
663 _indexLabel.text = index; 663 _indexLabel.text = index;
664 _indexLabel.hidden = NO; 664 _indexLabel.hidden = NO;
665 } else { 665 } else {
666 _indexLabel.hidden = YES; 666 _indexLabel.hidden = YES;
667 } 667 }
668 - _numberLabel.text = [NSString stringWithFormat:@"%zd",_tzImagePickerVc.selectedModels.count];  
669 - _numberImageView.hidden = (_tzImagePickerVc.selectedModels.count <= 0 || _isHideNaviBar || _isCropImage);  
670 - _numberLabel.hidden = (_tzImagePickerVc.selectedModels.count <= 0 || _isHideNaviBar || _isCropImage); 668 + _numberLabel.text = [NSString stringWithFormat:@"%zd",_CNTZImagePickerVc.selectedModels.count];
  669 + _numberImageView.hidden = (_CNTZImagePickerVc.selectedModels.count <= 0 || _isHideNaviBar || _isCropImage);
  670 + _numberLabel.hidden = (_CNTZImagePickerVc.selectedModels.count <= 0 || _isHideNaviBar || _isCropImage);
671 671
672 #pragma mark - 添加: 选择图片个数显示(LXG) 672 #pragma mark - 添加: 选择图片个数显示(LXG)
673 //隐藏图标 673 //隐藏图标
674 _numberLabel.hidden = YES; 674 _numberLabel.hidden = YES;
675 _numberImageView.hidden = YES; 675 _numberImageView.hidden = YES;
676 - NSString *titleStr = _tzImagePickerVc.selectedModels.count > 0 ? [NSString stringWithFormat:@"完成(%zd)",_tzImagePickerVc.selectedModels.count] : @"完成"; 676 + NSString *titleStr = _CNTZImagePickerVc.selectedModels.count > 0 ? [NSString stringWithFormat:@"完成(%zd)",_CNTZImagePickerVc.selectedModels.count] : @"完成";
677 [_doneButton setTitle:titleStr forState:UIControlStateNormal]; 677 [_doneButton setTitle:titleStr forState:UIControlStateNormal];
678 _originalPhotoButton.selected = _isSelectOriginalPhoto; 678 _originalPhotoButton.selected = _isSelectOriginalPhoto;
679 _originalPhotoLabel.hidden = !_originalPhotoButton.isSelected; 679 _originalPhotoLabel.hidden = !_originalPhotoButton.isSelected;
@@ -682,7 +682,7 @@ @@ -682,7 +682,7 @@
682 // If is previewing video, hide original photo button 682 // If is previewing video, hide original photo button
683 // 如果正在预览的是视频,隐藏原图按钮 683 // 如果正在预览的是视频,隐藏原图按钮
684 if (!_isHideNaviBar) { 684 if (!_isHideNaviBar) {
685 - if (model.type == TZAssetModelMediaTypeVideo) { 685 + if (model.type == CNTZAssetModelMediaTypeVideo) {
686 _originalPhotoButton.hidden = YES; 686 _originalPhotoButton.hidden = YES;
687 _originalPhotoLabel.hidden = YES; 687 _originalPhotoLabel.hidden = YES;
688 } else { 688 } else {
@@ -692,9 +692,9 @@ @@ -692,9 +692,9 @@
692 } 692 }
693 693
694 _doneButton.hidden = NO; 694 _doneButton.hidden = NO;
695 - _selectButton.hidden = !_tzImagePickerVc.showSelectBtn; 695 + _selectButton.hidden = !_CNTZImagePickerVc.showSelectBtn;
696 // 让宽度/高度小于 最小可选照片尺寸 的图片不能选中 696 // 让宽度/高度小于 最小可选照片尺寸 的图片不能选中
697 - if (![[TZImageManager manager] isPhotoSelectableWithAsset:model.asset]) { 697 + if (![[CNTZImageManager manager] isPhotoSelectableWithAsset:model.asset]) {
698 _numberLabel.hidden = YES; 698 _numberLabel.hidden = YES;
699 _numberImageView.hidden = YES; 699 _numberImageView.hidden = YES;
700 _selectButton.hidden = YES; 700 _selectButton.hidden = YES;
@@ -705,16 +705,16 @@ @@ -705,16 +705,16 @@
705 705
706 #pragma mark - 添加: 视频显示操作(LXG) 706 #pragma mark - 添加: 视频显示操作(LXG)
707 //多选状态下**不允许**图片和视频混选 707 //多选状态下**不允许**图片和视频混选
708 - if (!_tzImagePickerVc.allowPickingMultipleVideo) { 708 + if (!_CNTZImagePickerVc.allowPickingMultipleVideo) {
709 709
710 - if (model.type == TZAssetModelMediaTypeVideo) {//多选状态下**不允许**图片和视频混选 -> 视频 710 + if (model.type == CNTZAssetModelMediaTypeVideo) {//多选状态下**不允许**图片和视频混选 -> 视频
711 711
712 - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
713 - if (_tzImagePickerVc.selectedModels.count > 0) {//当选择图片大于0时  
714 - TZAssetModel *model = _tzImagePickerVc.selectedModels[0];  
715 - if (model.type == TZAssetModelMediaTypePhoto  
716 - || model.type == TZAssetModelMediaTypePhotoGif  
717 - ||model.type == TZAssetModelMediaTypeLivePhoto) {//选择为图片时 712 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  713 + if (_CNTZImagePickerVc.selectedModels.count > 0) {//当选择图片大于0时
  714 + CNTZAssetModel *model = _CNTZImagePickerVc.selectedModels[0];
  715 + if (model.type == CNTZAssetModelMediaTypePhoto
  716 + || model.type == CNTZAssetModelMediaTypePhotoGif
  717 + ||model.type == CNTZAssetModelMediaTypeLivePhoto) {//选择为图片时
718 718
719 _selectButton.hidden = YES; 719 _selectButton.hidden = YES;
720 _selectButton.enabled = NO; 720 _selectButton.enabled = NO;
@@ -749,10 +749,10 @@ @@ -749,10 +749,10 @@
749 duration = [[model.asset valueForProperty:ALAssetPropertyDuration] doubleValue]; 749 duration = [[model.asset valueForProperty:ALAssetPropertyDuration] doubleValue];
750 } 750 }
751 751
752 - if (duration > _tzImagePickerVc.maxVideoDuration) {//视频长度>最大限制长度 752 + if (duration > _CNTZImagePickerVc.maxVideoDuration) {//视频长度>最大限制长度
753 753
754 - NSInteger minutes = _tzImagePickerVc.maxVideoDuration / 60;  
755 - NSInteger seconds = _tzImagePickerVc.maxVideoDuration % 60; 754 + NSInteger minutes = _CNTZImagePickerVc.maxVideoDuration / 60;
  755 + NSInteger seconds = _CNTZImagePickerVc.maxVideoDuration % 60;
756 NSString *timeStr = [NSString string]; 756 NSString *timeStr = [NSString string];
757 if (minutes == 0) { 757 if (minutes == 0) {
758 timeStr = [NSString stringWithFormat:@"不能分享超过%li秒的视频",(long)seconds]; 758 timeStr = [NSString stringWithFormat:@"不能分享超过%li秒的视频",(long)seconds];
@@ -770,7 +770,7 @@ @@ -770,7 +770,7 @@
770 _tipBar.hidden = NO; 770 _tipBar.hidden = NO;
771 _tipContentLabel.text = timeStr; 771 _tipContentLabel.text = timeStr;
772 _doneButton.hidden = NO; 772 _doneButton.hidden = NO;
773 - if (_tzImagePickerVc.selectedModels.count > 0) { 773 + if (_CNTZImagePickerVc.selectedModels.count > 0) {
774 _doneButton.enabled = YES; 774 _doneButton.enabled = YES;
775 }else{ 775 }else{
776 _doneButton.enabled = NO; 776 _doneButton.enabled = NO;
@@ -778,10 +778,10 @@ @@ -778,10 +778,10 @@
778 _editTipButton.hidden = YES; 778 _editTipButton.hidden = YES;
779 _editTipLable.hidden = YES; 779 _editTipLable.hidden = YES;
780 780
781 - }else if(duration <= _tzImagePickerVc.maxVideoDuration && duration > _tzImagePickerVc.maxEditVideoTime){//视频长度<=最大限制长度,视频长度>=最小限制长度 781 + }else if(duration <= _CNTZImagePickerVc.maxVideoDuration && duration > _CNTZImagePickerVc.maxEditVideoTime){//视频长度<=最大限制长度,视频长度>=最小限制长度
782 782
783 - NSInteger minutes = _tzImagePickerVc.maxEditVideoTime / 60;  
784 - NSInteger seconds = _tzImagePickerVc.maxEditVideoTime % 60; 783 + NSInteger minutes = _CNTZImagePickerVc.maxEditVideoTime / 60;
  784 + NSInteger seconds = _CNTZImagePickerVc.maxEditVideoTime % 60;
785 NSString *timeStr = [NSString string]; 785 NSString *timeStr = [NSString string];
786 if (minutes == 0) { 786 if (minutes == 0) {
787 timeStr = [NSString stringWithFormat:@"朋友圈只能分享%li秒限制的视频,需进行编辑",(long)seconds]; 787 timeStr = [NSString stringWithFormat:@"朋友圈只能分享%li秒限制的视频,需进行编辑",(long)seconds];
@@ -835,10 +835,10 @@ @@ -835,10 +835,10 @@
835 }else if([model.asset isKindOfClass:[ALAsset class]]) { 835 }else if([model.asset isKindOfClass:[ALAsset class]]) {
836 duration = [[model.asset valueForProperty:ALAssetPropertyDuration] doubleValue]; 836 duration = [[model.asset valueForProperty:ALAssetPropertyDuration] doubleValue];
837 } 837 }
838 - if (model.type == TZAssetModelMediaTypeVideo  
839 - && duration > _tzImagePickerVc.maxVideoDuration) {//视频,支持混选,时长超过最大时长限制  
840 - NSInteger minutes = _tzImagePickerVc.maxVideoDuration / 60;  
841 - NSInteger seconds = _tzImagePickerVc.maxVideoDuration % 60; 838 + if (model.type == CNTZAssetModelMediaTypeVideo
  839 + && duration > _CNTZImagePickerVc.maxVideoDuration) {//视频,支持混选,时长超过最大时长限制
  840 + NSInteger minutes = _CNTZImagePickerVc.maxVideoDuration / 60;
  841 + NSInteger seconds = _CNTZImagePickerVc.maxVideoDuration % 60;
842 NSString *timeStr = [NSString string]; 842 NSString *timeStr = [NSString string];
843 if (minutes == 0) { 843 if (minutes == 0) {
844 timeStr = [NSString stringWithFormat:@"不能选择超过%li秒视频",(long)seconds]; 844 timeStr = [NSString stringWithFormat:@"不能选择超过%li秒视频",(long)seconds];
@@ -855,7 +855,7 @@ @@ -855,7 +855,7 @@
855 _tipBar.hidden = NO; 855 _tipBar.hidden = NO;
856 _tipContentLabel.text = timeStr; 856 _tipContentLabel.text = timeStr;
857 _doneButton.hidden = NO; 857 _doneButton.hidden = NO;
858 - if (_tzImagePickerVc.selectedModels.count > 0) { 858 + if (_CNTZImagePickerVc.selectedModels.count > 0) {
859 _doneButton.enabled = YES; 859 _doneButton.enabled = YES;
860 }else{ 860 }else{
861 _doneButton.enabled = NO; 861 _doneButton.enabled = NO;
@@ -864,7 +864,7 @@ @@ -864,7 +864,7 @@
864 _editTipLable.hidden = YES; 864 _editTipLable.hidden = YES;
865 865
866 866
867 - }else{///多选状态下**允许**图片和视频混选(lxg) - 不是视频 || 视频<= _tzImagePickerVc.maxVideoDuration 最大时长限制 867 + }else{///多选状态下**允许**图片和视频混选(lxg) - 不是视频 || 视频<= _CNTZImagePickerVc.maxVideoDuration 最大时长限制
868 868
869 _selectButton.hidden = NO; 869 _selectButton.hidden = NO;
870 _selectButton.enabled = YES; 870 _selectButton.enabled = YES;
@@ -881,7 +881,7 @@ @@ -881,7 +881,7 @@
881 881
882 ///LXG:添加预览按钮进来判断 882 ///LXG:添加预览按钮进来判断
883 if (self.enterType == PhotoPreviewEnterTypeSelected) { 883 if (self.enterType == PhotoPreviewEnterTypeSelected) {
884 - if (_tzImagePickerVc.selectedModels.count <= 0) { 884 + if (_CNTZImagePickerVc.selectedModels.count <= 0) {
885 _doneButton.enabled = NO; 885 _doneButton.enabled = NO;
886 }else{ 886 }else{
887 _doneButton.enabled = YES; 887 _doneButton.enabled = YES;
@@ -891,7 +891,7 @@ @@ -891,7 +891,7 @@
891 } 891 }
892 892
893 #pragma mark - ///iCloud加载视频 893 #pragma mark - ///iCloud加载视频
894 - if (model.type == TZAssetModelMediaTypeVideo) { 894 + if (model.type == CNTZAssetModelMediaTypeVideo) {
895 ///iCloud加载视频 895 ///iCloud加载视频
896 if (model.isCheckICloudType && model.isICloudType && !model.isVideoICloudDownLoad) { 896 if (model.isCheckICloudType && model.isICloudType && !model.isVideoICloudDownLoad) {
897 _selectButton.hidden = YES; 897 _selectButton.hidden = YES;
@@ -933,7 +933,7 @@ @@ -933,7 +933,7 @@
933 } 933 }
934 934
935 - (void)showPhotoBytes { 935 - (void)showPhotoBytes {
936 - [[TZImageManager manager] getPhotosBytesWithArray:@[_models[_currentIndex]] completion:^(NSString *totalBytes) { 936 + [[CNTZImageManager manager] getPhotosBytesWithArray:@[_models[_currentIndex]] completion:^(NSString *totalBytes) {
937 self->_originalPhotoLabel.text = [NSString stringWithFormat:@"(%@)",totalBytes]; 937 self->_originalPhotoLabel.text = [NSString stringWithFormat:@"(%@)",totalBytes];
938 }]; 938 }];
939 } 939 }
CNLiveImagePickerController/Classes/TZProgressView.h renamed to CNLiveImagePickerController/Classes/CNTZProgressView.h
1 // 1 //
2 -// TZProgressView.h  
3 -// TZImagePickerController 2 +// CNTZProgressView.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by ttouch on 2016/12/6. 5 // Created by ttouch on 2016/12/6.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@interface TZProgressView : UIView 11 +@interface CNTZProgressView : UIView
12 12
13 @property (nonatomic, assign) double progress; 13 @property (nonatomic, assign) double progress;
14 14
CNLiveImagePickerController/Classes/TZProgressView.m renamed to CNLiveImagePickerController/Classes/CNTZProgressView.m
1 // 1 //
2 -// TZProgressView.m  
3 -// TZImagePickerController 2 +// CNTZProgressView.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by ttouch on 2016/12/6. 5 // Created by ttouch on 2016/12/6.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZProgressView.h" 9 +#import "CNTZProgressView.h"
10 10
11 -@interface TZProgressView () 11 +@interface CNTZProgressView ()
12 @property (nonatomic, strong) CAShapeLayer *progressLayer; 12 @property (nonatomic, strong) CAShapeLayer *progressLayer;
13 @end 13 @end
14 14
15 -@implementation TZProgressView 15 +@implementation CNTZProgressView
16 16
17 - (instancetype)init { 17 - (instancetype)init {
18 self = [super init]; 18 self = [super init];
CNLiveImagePickerController/Classes/TZVideoPlayerController.h renamed to CNLiveImagePickerController/Classes/CNTZVideoPlayerController.h
1 // 1 //
2 -// TZVideoPlayerController.h  
3 -// TZImagePickerController 2 +// CNTZVideoPlayerController.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 16/1/5. 5 // Created by 谭真 on 16/1/5.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
@@ -8,12 +8,12 @@ @@ -8,12 +8,12 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@class TZAssetModel;  
12 -@interface TZVideoPlayerController : UIViewController 11 +@class CNTZAssetModel;
  12 +@interface CNTZVideoPlayerController : UIViewController
13 13
14 -@property (nonatomic, copy) void(^videoFinishedAction)(TZAssetModel *model,BOOL isOther); 14 +@property (nonatomic, copy) void(^videoFinishedAction)(CNTZAssetModel *model,BOOL isOther);
15 15
16 -@property (nonatomic, strong) TZAssetModel *model; 16 +@property (nonatomic, strong) CNTZAssetModel *model;
17 ///其他进入和相册进入(lxg) 17 ///其他进入和相册进入(lxg)
18 @property (nonatomic, assign) BOOL isOther; 18 @property (nonatomic, assign) BOOL isOther;
19 19
CNLiveImagePickerController/Classes/TZVideoPlayerController.m renamed to CNLiveImagePickerController/Classes/CNTZVideoPlayerController.m
1 // 1 //
2 -// TZVideoPlayerController.m  
3 -// TZImagePickerController 2 +// CNTZVideoPlayerController.m
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 16/1/5. 5 // Created by 谭真 on 16/1/5.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
7 // 7 //
8 8
9 -#import "TZVideoPlayerController.h" 9 +#import "CNTZVideoPlayerController.h"
10 #import <MediaPlayer/MediaPlayer.h> 10 #import <MediaPlayer/MediaPlayer.h>
11 -#import "UIView+TZLayout.h"  
12 -#import "TZImageManager.h"  
13 -#import "TZAssetModel.h"  
14 -#import "TZImagePickerController.h"  
15 -#import "TZPhotoPreviewController.h" 11 +#import "UIView+CNTZLayout.h"
  12 +#import "CNTZImageManager.h"
  13 +#import "CNTZAssetModel.h"
  14 +#import "CNTZImagePickerController.h"
  15 +#import "CNTZPhotoPreviewController.h"
16 #import <QMUIKit/QMUIKit.h> 16 #import <QMUIKit/QMUIKit.h>
17 #import <CNLiveBaseKit/CNLiveBaseKit.h> 17 #import <CNLiveBaseKit/CNLiveBaseKit.h>
18 18
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 //#import "CNAudioOrVideoMananger.h" 20 //#import "CNAudioOrVideoMananger.h"
21 //#import "CNLiveSoundManager.h" 21 //#import "CNLiveSoundManager.h"
22 //////////////////////////// 22 ////////////////////////////
23 -@interface TZVideoPlayerController () { 23 +@interface CNTZVideoPlayerController () {
24 AVPlayer *_player; 24 AVPlayer *_player;
25 AVPlayerLayer *_playerLayer; 25 AVPlayerLayer *_playerLayer;
26 UIButton *_playButton; 26 UIButton *_playButton;
@@ -41,16 +41,16 @@ @@ -41,16 +41,16 @@
41 #pragma clang diagnostic push 41 #pragma clang diagnostic push
42 #pragma clang diagnostic ignored "-Wdeprecated-declarations" 42 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
43 43
44 -@implementation TZVideoPlayerController 44 +@implementation CNTZVideoPlayerController
45 45
46 - (void)viewDidLoad { 46 - (void)viewDidLoad {
47 [super viewDidLoad]; 47 [super viewDidLoad];
48 ///LXG 注释 48 ///LXG 注释
49 // self.needShowStatusBar = ![UIApplication sharedApplication].statusBarHidden; 49 // self.needShowStatusBar = ![UIApplication sharedApplication].statusBarHidden;
50 self.view.backgroundColor = [UIColor blackColor]; 50 self.view.backgroundColor = [UIColor blackColor];
51 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
52 - if (tzImagePickerVc) {  
53 - self.navigationItem.title = tzImagePickerVc.previewBtnTitleStr; 51 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  52 + if (CNTZImagePickerVc) {
  53 + self.navigationItem.title = CNTZImagePickerVc.previewBtnTitleStr;
54 } 54 }
55 [self configMoviePlayer]; 55 [self configMoviePlayer];
56 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pausePlayerAndShowNaviBar) name:UIApplicationWillResignActiveNotification object:nil]; 56 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pausePlayerAndShowNaviBar) name:UIApplicationWillResignActiveNotification object:nil];
@@ -81,11 +81,11 @@ @@ -81,11 +81,11 @@
81 ///LXG 导航栏显示 81 ///LXG 导航栏显示
82 [UIApplication sharedApplication].statusBarStyle = _originStatusBarStyle; 82 [UIApplication sharedApplication].statusBarStyle = _originStatusBarStyle;
83 [self.navigationController setNavigationBarHidden:NO animated:YES]; 83 [self.navigationController setNavigationBarHidden:NO animated:YES];
84 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
85 - if (tzImagePickerVc.needShowStatusBar && iOS7Later) { 84 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  85 + if (CNTZImagePickerVc.needShowStatusBar && iOS7Later) {
86 [UIApplication sharedApplication].statusBarHidden = NO; 86 [UIApplication sharedApplication].statusBarHidden = NO;
87 } 87 }
88 - [TZImageManager manager].shouldFixOrientation = NO; 88 + [CNTZImageManager manager].shouldFixOrientation = NO;
89 } 89 }
90 ///LXG iOS7之后使用 90 ///LXG iOS7之后使用
91 - (BOOL)prefersStatusBarHidden { 91 - (BOOL)prefersStatusBarHidden {
@@ -93,13 +93,13 @@ @@ -93,13 +93,13 @@
93 } 93 }
94 94
95 - (void)configMoviePlayer { 95 - (void)configMoviePlayer {
96 - [[TZImageManager manager] getPhotoWithAsset:_model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { 96 + [[CNTZImageManager manager] getPhotoWithAsset:_model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
97 if (!isDegraded && photo) { 97 if (!isDegraded && photo) {
98 self->_cover = photo; 98 self->_cover = photo;
99 self->_doneButton.enabled = YES; 99 self->_doneButton.enabled = YES;
100 } 100 }
101 }]; 101 }];
102 - [[TZImageManager manager] getVideoWithAsset:_model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) { 102 + [[CNTZImageManager manager] getVideoWithAsset:_model.asset completion:^(AVPlayerItem *playerItem, NSDictionary *info) {
103 dispatch_async(dispatch_get_main_queue(), ^{ 103 dispatch_async(dispatch_get_main_queue(), ^{
104 self->_player = [AVPlayer playerWithPlayerItem:playerItem]; 104 self->_player = [AVPlayer playerWithPlayerItem:playerItem];
105 self->_playerLayer = [AVPlayerLayer playerLayerWithPlayer:self->_player]; 105 self->_playerLayer = [AVPlayerLayer playerLayerWithPlayer:self->_player];
@@ -162,20 +162,20 @@ @@ -162,20 +162,20 @@
162 _doneButton.enabled = NO; 162 _doneButton.enabled = NO;
163 } 163 }
164 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside]; 164 [_doneButton addTarget:self action:@selector(doneButtonClick) forControlEvents:UIControlEventTouchUpInside];
165 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;  
166 - if (tzImagePickerVc) {  
167 - [_doneButton setTitle:tzImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];  
168 - [_doneButton setTitleColor:tzImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal]; 165 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
  166 + if (CNTZImagePickerVc) {
  167 + [_doneButton setTitle:CNTZImagePickerVc.doneBtnTitleStr forState:UIControlStateNormal];
  168 + [_doneButton setTitleColor:CNTZImagePickerVc.oKButtonTitleColorNormal forState:UIControlStateNormal];
169 } else { 169 } else {
170 - [_doneButton setTitle:[NSBundle tz_localizedStringForKey:@"Done"] forState:UIControlStateNormal]; 170 + [_doneButton setTitle:[NSBundle CNTZ_localizedStringForKey:@"Done"] forState:UIControlStateNormal];
171 [_doneButton setTitleColor:[UIColor colorWithRed:(83/255.0) green:(179/255.0) blue:(17/255.0) alpha:1.0] forState:UIControlStateNormal]; 171 [_doneButton setTitleColor:[UIColor colorWithRed:(83/255.0) green:(179/255.0) blue:(17/255.0) alpha:1.0] forState:UIControlStateNormal];
172 } 172 }
173 - [_doneButton setTitleColor:tzImagePickerVc.oKButtonTitleColorDisabled forState:UIControlStateDisabled]; 173 + [_doneButton setTitleColor:CNTZImagePickerVc.oKButtonTitleColorDisabled forState:UIControlStateDisabled];
174 [_toolBar addSubview:_doneButton]; 174 [_toolBar addSubview:_doneButton];
175 [self.view addSubview:_toolBar]; 175 [self.view addSubview:_toolBar];
176 176
177 - if (tzImagePickerVc.videoPreviewPageUIConfigBlock) {  
178 - tzImagePickerVc.videoPreviewPageUIConfigBlock(_playButton, _toolBar, _doneButton); 177 + if (CNTZImagePickerVc.videoPreviewPageUIConfigBlock) {
  178 + CNTZImagePickerVc.videoPreviewPageUIConfigBlock(_playButton, _toolBar, _doneButton);
179 } 179 }
180 } 180 }
181 181
@@ -184,20 +184,20 @@ @@ -184,20 +184,20 @@
184 - (void)viewDidLayoutSubviews { 184 - (void)viewDidLayoutSubviews {
185 [super viewDidLayoutSubviews]; 185 [super viewDidLayoutSubviews];
186 186
187 - CGFloat statusBarHeight = [TZCommonTools tz_statusBarHeight];  
188 - CGFloat statusBarAndNaviBarHeight = statusBarHeight + self.navigationController.navigationBar.tz_height; 187 + CGFloat statusBarHeight = [CNTZCommonTools CNTZ_statusBarHeight];
  188 + CGFloat statusBarAndNaviBarHeight = statusBarHeight + self.navigationController.navigationBar.CNTZ_height;
189 _playerLayer.frame = self.view.bounds; 189 _playerLayer.frame = self.view.bounds;
190 - CGFloat toolBarHeight = [TZCommonTools tz_isIPhoneX] ? 44 + (83 - 49) : 44;  
191 - _toolBar.frame = CGRectMake(0, self.view.tz_height - toolBarHeight, self.view.tz_width, toolBarHeight);  
192 - _doneButton.frame = CGRectMake(self.view.tz_width - 44 - 12, 0, 44, 44);  
193 - _playButton.frame = CGRectMake(0, statusBarAndNaviBarHeight, self.view.tz_width, self.view.tz_height - statusBarAndNaviBarHeight - toolBarHeight); 190 + CGFloat toolBarHeight = [CNTZCommonTools CNTZ_isIPhoneX] ? 44 + (83 - 49) : 44;
  191 + _toolBar.frame = CGRectMake(0, self.view.CNTZ_height - toolBarHeight, self.view.CNTZ_width, toolBarHeight);
  192 + _doneButton.frame = CGRectMake(self.view.CNTZ_width - 44 - 12, 0, 44, 44);
  193 + _playButton.frame = CGRectMake(0, statusBarAndNaviBarHeight, self.view.CNTZ_width, self.view.CNTZ_height - statusBarAndNaviBarHeight - toolBarHeight);
194 194
195 - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; 195 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
196 ///LXG NAV布局 196 ///LXG NAV布局
197 if (_isOther) { 197 if (_isOther) {
198 CGFloat statusBarHeightInterval = statusBarHeight - 20; 198 CGFloat statusBarHeightInterval = statusBarHeight - 20;
199 CGFloat naviBarHeight = statusBarHeight + 44; 199 CGFloat naviBarHeight = statusBarHeight + 44;
200 - _naviBar.frame = CGRectMake(0, 0, self.view.tz_width, naviBarHeight); 200 + _naviBar.frame = CGRectMake(0, 0, self.view.CNTZ_width, naviBarHeight);
201 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44); 201 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44);
202 //完成按钮 202 //完成按钮
203 _doneButton.titleLabel.font = [UIFont systemFontOfSize:13]; 203 _doneButton.titleLabel.font = [UIFont systemFontOfSize:13];
@@ -218,13 +218,13 @@ @@ -218,13 +218,13 @@
218 218
219 }else{ 219 }else{
220 CGFloat statusBarHeightInterval = statusBarHeight - 20; 220 CGFloat statusBarHeightInterval = statusBarHeight - 20;
221 - CGFloat naviBarHeight = statusBarHeight + tzImagePickerVc.navigationBar.tz_height;  
222 - _naviBar.frame = CGRectMake(0, 0, self.view.tz_width, naviBarHeight); 221 + CGFloat naviBarHeight = statusBarHeight + CNTZImagePickerVc.navigationBar.CNTZ_height;
  222 + _naviBar.frame = CGRectMake(0, 0, self.view.CNTZ_width, naviBarHeight);
223 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44); 223 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44);
224 } 224 }
225 [self.view bringSubviewToFront:_naviBar]; 225 [self.view bringSubviewToFront:_naviBar];
226 - if (tzImagePickerVc.videoPreviewPageDidLayoutSubviewsBlock) {  
227 - tzImagePickerVc.videoPreviewPageDidLayoutSubviewsBlock(_playButton, _toolBar, _doneButton); 226 + if (CNTZImagePickerVc.videoPreviewPageDidLayoutSubviewsBlock) {
  227 + CNTZImagePickerVc.videoPreviewPageDidLayoutSubviewsBlock(_playButton, _toolBar, _doneButton);
228 } 228 }
229 } 229 }
230 230
@@ -266,7 +266,7 @@ @@ -266,7 +266,7 @@
266 } 266 }
267 267
268 if (self.navigationController) { 268 if (self.navigationController) {
269 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 269 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
270 if (imagePickerVc.autoDismiss) { 270 if (imagePickerVc.autoDismiss) {
271 [self.navigationController dismissViewControllerAnimated:YES completion:^{ 271 [self.navigationController dismissViewControllerAnimated:YES completion:^{
272 [self callDelegateMethod]; 272 [self callDelegateMethod];
@@ -282,7 +282,7 @@ @@ -282,7 +282,7 @@
282 } 282 }
283 283
284 - (void)callDelegateMethod { 284 - (void)callDelegateMethod {
285 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 285 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
286 if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingVideo:sourceAssets:)]) { 286 if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingVideo:sourceAssets:)]) {
287 [imagePickerVc.pickerDelegate imagePickerController:imagePickerVc didFinishPickingVideo:_cover sourceAssets:_model.asset]; 287 [imagePickerVc.pickerDelegate imagePickerController:imagePickerVc didFinishPickingVideo:_cover sourceAssets:_model.asset];
288 } 288 }
@@ -298,7 +298,7 @@ @@ -298,7 +298,7 @@
298 self.videoFinishedAction(self.model, self.isOther); 298 self.videoFinishedAction(self.model, self.isOther);
299 } 299 }
300 if (self.navigationController) { 300 if (self.navigationController) {
301 - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; 301 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
302 [imagePickerVc popViewControllerAnimated:YES]; 302 [imagePickerVc popViewControllerAnimated:YES];
303 } else { 303 } else {
304 [self dismissViewControllerAnimated:YES completion:^{ 304 [self dismissViewControllerAnimated:YES completion:^{
CNLiveImagePickerController/Classes/NSBundle+TZImagePicker.h renamed to CNLiveImagePickerController/Classes/NSBundle+CNTZImagePicker.h
1 // 1 //
2 -// NSBundle+TZImagePicker.h  
3 -// TZImagePickerController 2 +// NSBundle+CNTZImagePicker.h
  3 +// CNTZImagePickerController
4 // 4 //
5 // Created by 谭真 on 16/08/18. 5 // Created by 谭真 on 16/08/18.
6 // Copyright © 2016年 谭真. All rights reserved. 6 // Copyright © 2016年 谭真. All rights reserved.
@@ -8,12 +8,12 @@ @@ -8,12 +8,12 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 -@interface NSBundle (TZImagePicker) 11 +@interface NSBundle (CNTZImagePicker)
12 12
13 -+ (NSBundle *)tz_imagePickerBundle; 13 ++ (NSBundle *)CNTZ_imagePickerBundle;
14 14
15 -+ (NSString *)tz_localizedStringForKey:(NSString *)key value:(NSString *)value;  
16 -+ (NSString *)tz_localizedStringForKey:(NSString *)key; 15 ++ (NSString *)CNTZ_localizedStringForKey:(NSString *)key value:(NSString *)value;
  16 ++ (NSString *)CNTZ_localizedStringForKey:(NSString *)key;
17 17
18 @end 18 @end
19 19
CNLiveImagePickerController/Classes/NSBundle+CNTZImagePicker.m 0 → 100755
  1 +//
  2 +// NSBundle+CNTZImagePicker.m
  3 +// CNTZImagePickerController
  4 +//
  5 +// Created by 谭真 on 16/08/18.
  6 +// Copyright © 2016年 谭真. All rights reserved.
  7 +//
  8 +
  9 +#import "NSBundle+CNTZImagePicker.h"
  10 +#import "CNTZImagePickerController.h"
  11 +
  12 +@implementation NSBundle (CNTZImagePicker)
  13 +
  14 ++ (NSBundle *)CNTZ_imagePickerBundle {
  15 + NSBundle *bundle = [NSBundle bundleForClass:[CNTZImagePickerController class]];
  16 + NSURL *url = [bundle URLForResource:@"CNTZImagePickerController" withExtension:@"bundle"];
  17 + bundle = [NSBundle bundleWithURL:url];
  18 + return bundle;
  19 +}
  20 +
  21 ++ (NSString *)CNTZ_localizedStringForKey:(NSString *)key {
  22 + return [self CNTZ_localizedStringForKey:key value:@""];
  23 +}
  24 +
  25 ++ (NSString *)CNTZ_localizedStringForKey:(NSString *)key value:(NSString *)value {
  26 + NSBundle *bundle = [CNTZImagePickerConfig sharedInstance].languageBundle;
  27 + NSString *value1 = [bundle localizedStringForKey:key value:value table:nil];
  28 + return value1;
  29 +}
  30 +
  31 +@end
CNLiveImagePickerController/Classes/NSBundle+TZImagePicker.m deleted 100755 → 0
1 -//  
2 -// NSBundle+TZImagePicker.m  
3 -// TZImagePickerController  
4 -//  
5 -// Created by 谭真 on 16/08/18.  
6 -// Copyright © 2016年 谭真. All rights reserved.  
7 -//  
8 -  
9 -#import "NSBundle+TZImagePicker.h"  
10 -#import "TZImagePickerController.h"  
11 -  
12 -@implementation NSBundle (TZImagePicker)  
13 -  
14 -+ (NSBundle *)tz_imagePickerBundle {  
15 - NSBundle *bundle = [NSBundle bundleForClass:[TZImagePickerController class]];  
16 - NSURL *url = [bundle URLForResource:@"TZImagePickerController" withExtension:@"bundle"];  
17 - bundle = [NSBundle bundleWithURL:url];  
18 - return bundle;  
19 -}  
20 -  
21 -+ (NSString *)tz_localizedStringForKey:(NSString *)key {  
22 - return [self tz_localizedStringForKey:key value:@""];  
23 -}  
24 -  
25 -+ (NSString *)tz_localizedStringForKey:(NSString *)key value:(NSString *)value {  
26 - NSBundle *bundle = [TZImagePickerConfig sharedInstance].languageBundle;  
27 - NSString *value1 = [bundle localizedStringForKey:key value:value table:nil];  
28 - return value1;  
29 -}  
30 -  
31 -@end  
CNLiveImagePickerController/Classes/UIView+CNTZLayout.h 0 → 100755
  1 +
  2 +//
  3 +// UIView+CNTZLayout.h
  4 +//
  5 +// Created by 谭真 on 15/2/24.
  6 +// Copyright © 2015年 谭真. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +typedef enum : NSUInteger {
  12 + CNTZOscillatoryAnimationToBigger,
  13 + CNTZOscillatoryAnimationToSmaller,
  14 +} CNTZOscillatoryAnimationType;
  15 +
  16 +@interface UIView (CNTZLayout)
  17 +
  18 +@property (nonatomic) CGFloat CNTZ_left; ///< Shortcut for frame.origin.x.
  19 +@property (nonatomic) CGFloat CNTZ_top; ///< Shortcut for frame.origin.y
  20 +@property (nonatomic) CGFloat CNTZ_right; ///< Shortcut for frame.origin.x + frame.size.width
  21 +@property (nonatomic) CGFloat CNTZ_bottom; ///< Shortcut for frame.origin.y + frame.size.height
  22 +@property (nonatomic) CGFloat CNTZ_width; ///< Shortcut for frame.size.width.
  23 +@property (nonatomic) CGFloat CNTZ_height; ///< Shortcut for frame.size.height.
  24 +@property (nonatomic) CGFloat CNTZ_centerX; ///< Shortcut for center.x
  25 +@property (nonatomic) CGFloat CNTZ_centerY; ///< Shortcut for center.y
  26 +@property (nonatomic) CGPoint CNTZ_origin; ///< Shortcut for frame.origin.
  27 +@property (nonatomic) CGSize CNTZ_size; ///< Shortcut for frame.size.
  28 +
  29 ++ (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(CNTZOscillatoryAnimationType)type;
  30 +
  31 +@end
CNLiveImagePickerController/Classes/UIView+TZLayout.m renamed to CNLiveImagePickerController/Classes/UIView+CNTZLayout.m
  1 +
1 // 2 //
2 -// UIView+TZLayout.m 3 +// UIView+CNTZLayout.m
3 // 4 //
4 // Created by 谭真 on 15/2/24. 5 // Created by 谭真 on 15/2/24.
5 // Copyright © 2015年 谭真. All rights reserved. 6 // Copyright © 2015年 谭真. All rights reserved.
6 // 7 //
7 8
8 -#import "UIView+TZLayout.h" 9 +#import "UIView+CNTZLayout.h"
9 10
10 -@implementation UIView (TZLayout) 11 +@implementation UIView (CNTZLayout)
11 12
12 -- (CGFloat)tz_left { 13 +- (CGFloat)CNTZ_left {
13 return self.frame.origin.x; 14 return self.frame.origin.x;
14 } 15 }
15 16
16 -- (void)setTz_left:(CGFloat)x { 17 +- (void)setCNTZ_left:(CGFloat)x {
17 CGRect frame = self.frame; 18 CGRect frame = self.frame;
18 frame.origin.x = x; 19 frame.origin.x = x;
19 self.frame = frame; 20 self.frame = frame;
20 } 21 }
21 22
22 -- (CGFloat)tz_top { 23 +- (CGFloat)CNTZ_top {
23 return self.frame.origin.y; 24 return self.frame.origin.y;
24 } 25 }
25 26
26 -- (void)setTz_top:(CGFloat)y { 27 +- (void)setCNTZ_top:(CGFloat)y {
27 CGRect frame = self.frame; 28 CGRect frame = self.frame;
28 frame.origin.y = y; 29 frame.origin.y = y;
29 self.frame = frame; 30 self.frame = frame;
30 } 31 }
31 32
32 -- (CGFloat)tz_right { 33 +- (CGFloat)CNTZ_right {
33 return self.frame.origin.x + self.frame.size.width; 34 return self.frame.origin.x + self.frame.size.width;
34 } 35 }
35 36
36 -- (void)setTz_right:(CGFloat)right { 37 +- (void)setCNTZ_right:(CGFloat)right {
37 CGRect frame = self.frame; 38 CGRect frame = self.frame;
38 frame.origin.x = right - frame.size.width; 39 frame.origin.x = right - frame.size.width;
39 self.frame = frame; 40 self.frame = frame;
40 } 41 }
41 42
42 -- (CGFloat)tz_bottom { 43 +- (CGFloat)CNTZ_bottom {
43 return self.frame.origin.y + self.frame.size.height; 44 return self.frame.origin.y + self.frame.size.height;
44 } 45 }
45 46
46 -- (void)setTz_bottom:(CGFloat)bottom { 47 +- (void)setCNTZ_bottom:(CGFloat)bottom {
47 CGRect frame = self.frame; 48 CGRect frame = self.frame;
48 frame.origin.y = bottom - frame.size.height; 49 frame.origin.y = bottom - frame.size.height;
49 self.frame = frame; 50 self.frame = frame;
50 } 51 }
51 52
52 -- (CGFloat)tz_width { 53 +- (CGFloat)CNTZ_width {
53 return self.frame.size.width; 54 return self.frame.size.width;
54 } 55 }
55 56
56 -- (void)setTz_width:(CGFloat)width { 57 +- (void)setCNTZ_width:(CGFloat)width {
57 CGRect frame = self.frame; 58 CGRect frame = self.frame;
58 frame.size.width = width; 59 frame.size.width = width;
59 self.frame = frame; 60 self.frame = frame;
60 } 61 }
61 62
62 -- (CGFloat)tz_height { 63 +- (CGFloat)CNTZ_height {
63 return self.frame.size.height; 64 return self.frame.size.height;
64 } 65 }
65 66
66 -- (void)setTz_height:(CGFloat)height { 67 +- (void)setCNTZ_height:(CGFloat)height {
67 CGRect frame = self.frame; 68 CGRect frame = self.frame;
68 frame.size.height = height; 69 frame.size.height = height;
69 self.frame = frame; 70 self.frame = frame;
70 } 71 }
71 72
72 -- (CGFloat)tz_centerX { 73 +- (CGFloat)CNTZ_centerX {
73 return self.center.x; 74 return self.center.x;
74 } 75 }
75 76
76 -- (void)setTz_centerX:(CGFloat)centerX { 77 +- (void)setCNTZ_centerX:(CGFloat)centerX {
77 self.center = CGPointMake(centerX, self.center.y); 78 self.center = CGPointMake(centerX, self.center.y);
78 } 79 }
79 80
80 -- (CGFloat)tz_centerY { 81 +- (CGFloat)CNTZ_centerY {
81 return self.center.y; 82 return self.center.y;
82 } 83 }
83 84
84 -- (void)setTz_centerY:(CGFloat)centerY { 85 +- (void)setCNTZ_centerY:(CGFloat)centerY {
85 self.center = CGPointMake(self.center.x, centerY); 86 self.center = CGPointMake(self.center.x, centerY);
86 } 87 }
87 88
88 -- (CGPoint)tz_origin { 89 +- (CGPoint)CNTZ_origin {
89 return self.frame.origin; 90 return self.frame.origin;
90 } 91 }
91 92
92 -- (void)setTz_origin:(CGPoint)origin { 93 +- (void)setCNTZ_origin:(CGPoint)origin {
93 CGRect frame = self.frame; 94 CGRect frame = self.frame;
94 frame.origin = origin; 95 frame.origin = origin;
95 self.frame = frame; 96 self.frame = frame;
96 } 97 }
97 98
98 -- (CGSize)tz_size { 99 +- (CGSize)CNTZ_size {
99 return self.frame.size; 100 return self.frame.size;
100 } 101 }
101 102
102 -- (void)setTz_size:(CGSize)size { 103 +- (void)setCNTZ_size:(CGSize)size {
103 CGRect frame = self.frame; 104 CGRect frame = self.frame;
104 frame.size = size; 105 frame.size = size;
105 self.frame = frame; 106 self.frame = frame;
106 } 107 }
107 108
108 -+ (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(TZOscillatoryAnimationType)type{  
109 - NSNumber *animationScale1 = type == TZOscillatoryAnimationToBigger ? @(1.15) : @(0.5);  
110 - NSNumber *animationScale2 = type == TZOscillatoryAnimationToBigger ? @(0.92) : @(1.15); 109 ++ (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(CNTZOscillatoryAnimationType)type{
  110 + NSNumber *animationScale1 = type == CNTZOscillatoryAnimationToBigger ? @(1.15) : @(0.5);
  111 + NSNumber *animationScale2 = type == CNTZOscillatoryAnimationToBigger ? @(0.92) : @(1.15);
111 112
112 [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{ 113 [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{
113 [layer setValue:animationScale1 forKeyPath:@"transform.scale"]; 114 [layer setValue:animationScale1 forKeyPath:@"transform.scale"];
CNLiveImagePickerController/Classes/UIView+TZLayout.h deleted 100755 → 0
1 -//  
2 -// UIView+TZLayout.h  
3 -//  
4 -// Created by 谭真 on 15/2/24.  
5 -// Copyright © 2015年 谭真. All rights reserved.  
6 -//  
7 -  
8 -#import <UIKit/UIKit.h>  
9 -  
10 -typedef enum : NSUInteger {  
11 - TZOscillatoryAnimationToBigger,  
12 - TZOscillatoryAnimationToSmaller,  
13 -} TZOscillatoryAnimationType;  
14 -  
15 -@interface UIView (TZLayout)  
16 -  
17 -@property (nonatomic) CGFloat tz_left; ///< Shortcut for frame.origin.x.  
18 -@property (nonatomic) CGFloat tz_top; ///< Shortcut for frame.origin.y  
19 -@property (nonatomic) CGFloat tz_right; ///< Shortcut for frame.origin.x + frame.size.width  
20 -@property (nonatomic) CGFloat tz_bottom; ///< Shortcut for frame.origin.y + frame.size.height  
21 -@property (nonatomic) CGFloat tz_width; ///< Shortcut for frame.size.width.  
22 -@property (nonatomic) CGFloat tz_height; ///< Shortcut for frame.size.height.  
23 -@property (nonatomic) CGFloat tz_centerX; ///< Shortcut for center.x  
24 -@property (nonatomic) CGFloat tz_centerY; ///< Shortcut for center.y  
25 -@property (nonatomic) CGPoint tz_origin; ///< Shortcut for frame.origin.  
26 -@property (nonatomic) CGSize tz_size; ///< Shortcut for frame.size.  
27 -  
28 -+ (void)showOscillatoryAnimationWithLayer:(CALayer *)layer type:(TZOscillatoryAnimationType)type;  
29 -  
30 -@end  
Example/CNLiveImagePickerController.xcodeproj/project.pbxproj
@@ -308,6 +308,7 @@ @@ -308,6 +308,7 @@
308 "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", 308 "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework",
309 "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework", 309 "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework",
310 "${BUILT_PRODUCTS_DIR}/CNLiveBaseTools/CNLiveBaseTools.framework", 310 "${BUILT_PRODUCTS_DIR}/CNLiveBaseTools/CNLiveBaseTools.framework",
  311 + "${BUILT_PRODUCTS_DIR}/CNLiveBeeHive/CNLiveBeeHive.framework",
311 "${BUILT_PRODUCTS_DIR}/CNLiveBusinessTools/CNLiveBusinessTools.framework", 312 "${BUILT_PRODUCTS_DIR}/CNLiveBusinessTools/CNLiveBusinessTools.framework",
312 "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework", 313 "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework",
313 "${BUILT_PRODUCTS_DIR}/CNLiveEnvironment/CNLiveEnvironment.framework", 314 "${BUILT_PRODUCTS_DIR}/CNLiveEnvironment/CNLiveEnvironment.framework",
@@ -322,13 +323,22 @@ @@ -322,13 +323,22 @@
322 "${BUILT_PRODUCTS_DIR}/Qiniu/Qiniu.framework", 323 "${BUILT_PRODUCTS_DIR}/Qiniu/Qiniu.framework",
323 "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework", 324 "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework",
324 "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", 325 "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
325 - "${BUILT_PRODUCTS_DIR}/YYKit/YYKit.framework", 326 + "${BUILT_PRODUCTS_DIR}/SSZipArchive/SSZipArchive.framework",
  327 + "${BUILT_PRODUCTS_DIR}/YYAsyncLayer/YYAsyncLayer.framework",
  328 + "${BUILT_PRODUCTS_DIR}/YYCache/YYCache.framework",
  329 + "${BUILT_PRODUCTS_DIR}/YYCategories/YYCategories.framework",
  330 + "${BUILT_PRODUCTS_DIR}/YYDispatchQueuePool/YYDispatchQueuePool.framework",
  331 + "${BUILT_PRODUCTS_DIR}/YYImage/YYImage.framework",
  332 + "${BUILT_PRODUCTS_DIR}/YYModel/YYModel.framework",
  333 + "${BUILT_PRODUCTS_DIR}/YYText/YYText.framework",
  334 + "${BUILT_PRODUCTS_DIR}/YYWebImage/YYWebImage.framework",
326 ); 335 );
327 name = "[CP] Embed Pods Frameworks"; 336 name = "[CP] Embed Pods Frameworks";
328 outputPaths = ( 337 outputPaths = (
329 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", 338 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework",
330 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework", 339 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework",
331 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseTools.framework", 340 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseTools.framework",
  341 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBeeHive.framework",
332 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBusinessTools.framework", 342 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBusinessTools.framework",
333 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework", 343 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework",
334 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveEnvironment.framework", 344 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveEnvironment.framework",
@@ -343,7 +353,15 @@ @@ -343,7 +353,15 @@
343 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Qiniu.framework", 353 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Qiniu.framework",
344 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework", 354 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework",
345 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", 355 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
346 - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYKit.framework", 356 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SSZipArchive.framework",
  357 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYAsyncLayer.framework",
  358 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYCache.framework",
  359 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYCategories.framework",
  360 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYDispatchQueuePool.framework",
  361 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYImage.framework",
  362 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYModel.framework",
  363 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYText.framework",
  364 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYWebImage.framework",
347 ); 365 );
348 runOnlyForDeploymentPostprocessing = 0; 366 runOnlyForDeploymentPostprocessing = 0;
349 shellPath = /bin/sh; 367 shellPath = /bin/sh;
Example/CNLiveImagePickerController/CNLiveViewController.m
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 #import "CNImagePickerManager.h" 10 #import "CNImagePickerManager.h"
11 #import <CNLiveUploadManager/CNLiveUploadManager.h> 11 #import <CNLiveUploadManager/CNLiveUploadManager.h>
12 12
13 -@interface CNLiveViewController ()<TZImagePickerControllerDelegate> 13 +@interface CNLiveViewController ()<CNTZImagePickerControllerDelegate>
14 14
15 @end 15 @end
16 16