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 8  
9 9 Pod::Spec.new do |s|
10 10 s.name = 'CNLiveImagePickerController'
11   - s.version = '0.0.24'
  11 + s.version = '0.0.25'
12 12 s.summary = '相册'
13 13  
14 14 # This description is used to generate tags and improve search results.
... ...
CNLiveImagePickerController/Classes/CNEditVideoController.h
... ... @@ -8,11 +8,11 @@
8 8  
9 9 #import <UIKit/UIKit.h>
10 10  
11   -@class TZAssetModel;
  11 +@class CNTZAssetModel;
12 12  
13 13 @interface CNEditVideoController : UIViewController
14 14  
15   -@property (nonatomic, strong) TZAssetModel *model;
  15 +@property (nonatomic, strong) CNTZAssetModel *model;
16 16  
17 17 @property (nonatomic, strong) NSMutableArray *models; ///< All photo models / 所有图片模型数组
18 18 @property (nonatomic, strong) NSMutableArray *photos; ///< All photos / 所有图片数组
... ...
CNLiveImagePickerController/Classes/CNEditVideoController.m
... ... @@ -8,12 +8,12 @@
8 8  
9 9 #import "CNEditVideoController.h"
10 10 #import <AVFoundation/AVFoundation.h>
11   -#import "TZAssetModel.h"
  11 +#import "CNTZAssetModel.h"
12 12 #import <objc/runtime.h>
13 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 17 #import <SDAutoLayout/SDAutoLayout.h>
18 18 #import <CNLiveBaseKit/CNLiveBaseKit.h>
19 19  
... ... @@ -422,8 +422,8 @@
422 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 427 _measureCount = (NSInteger)(duration / _interval);
428 428 ///播放视频的
429 429 if ([self.model.asset isKindOfClass:[PHAsset class]]) {//PHAsset
... ... @@ -484,8 +484,8 @@
484 484 }
485 485  
486 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 490 UIViewController *vc = [self.navigationController popViewControllerAnimated:NO];
491 491 if (!vc) {
... ... @@ -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 511 _doneBtn.enabled = NO;
512 512 _cancelBtn.enabled = NO;
513 513 __weak typeof(self) weakSelf = self;
514 514  
515 515 if (!_avAsset) {
516   - [_tzImagePickerVc hideProgressHUD];
517   - [_tzImagePickerVc showAlertWithTitle:@"编辑视频失败"];
  516 + [_CNTZImagePickerVc hideProgressHUD];
  517 + [_CNTZImagePickerVc showAlertWithTitle:@"编辑视频失败"];
518 518 _doneBtn.enabled = YES;
519 519 _cancelBtn.enabled = YES;
520 520 return;
521 521 }
522 522 [self exportEditVideoForAsset:_avAsset range:[self getTimeRange] complete:^(BOOL isSuc, id asset) {
523   - [_tzImagePickerVc hideProgressHUD];
  523 + [_CNTZImagePickerVc hideProgressHUD];
524 524  
525 525 if (isSuc) {
526 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 535 if (weakSelf.doneButtonEditClickBlock) {
536   - weakSelf.doneButtonEditClickBlock(_tzImagePickerVc.isSelectOriginalPhoto);
  536 + weakSelf.doneButtonEditClickBlock(_CNTZImagePickerVc.isSelectOriginalPhoto);
537 537 }
538   - [_tzImagePickerVc hideProgressHUD];
  538 + [_CNTZImagePickerVc hideProgressHUD];
539 539 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
540 540 self->_doneBtn.enabled = YES;
541 541 self->_cancelBtn.enabled = YES;
542 542 });
543 543  
544 544 }else{
545   - [_tzImagePickerVc showAlertWithTitle:@"编辑失败"];
  545 + [_CNTZImagePickerVc showAlertWithTitle:@"编辑失败"];
546 546 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
547 547 self->_doneBtn.enabled = YES;
548 548 self->_cancelBtn.enabled = YES;
... ...
CNLiveImagePickerController/Classes/CNImagePickerController.h
1 1 //
2   -// CNTZImagePickerControllerViewController.h
  2 +// CNCNTZImagePickerControllerViewController.h
3 3 // CNLiveNetAdd
4 4 //
5 5 // Created by 梁星国 on 2018/8/22.
6 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 18 @end
... ...
CNLiveImagePickerController/Classes/CNImagePickerController.m
1 1 //
2   -// CNTZImagePickerControllerViewController.m
  2 +// CNCNTZImagePickerControllerViewController.m
3 3 // CNLiveNetAdd
4 4 //
5 5 // Created by 梁星国 on 2018/8/22.
... ... @@ -24,7 +24,7 @@
24 24 /**
25 25 配置
26 26 */
27   -- (void)configTZImagePicker{
  27 +- (void)configCNTZImagePicker{
28 28  
29 29 // imagePickerVc.navigationBar.translucent = NO;
30 30  
... ... @@ -77,7 +77,7 @@
77 77 self.allowCrop = NO;
78 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 82 [imagePickerVc setCropViewSettingBlock:^(UIView *cropView) {
83 83 cropView.layer.borderColor = [UIColor redColor].CGColor;
... ... @@ -115,7 +115,7 @@
115 115 // imagePickerVc.preferredLanguage = @"zh-Hans";
116 116  
117 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 120 /// 【自定义各页面/组件的样式】在界面初始化/组件setModel完成后调用,允许外界修改样式等
121 121 //相册
... ... @@ -238,12 +238,12 @@
238 238  
239 239 }];
240 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 247 [posterImageView setBackgroundColor:[UIColor whiteColor]];
248 248  
249 249 }];
... ... @@ -285,10 +285,10 @@
285 285  
286 286 }];
287 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 13 #pragma mark - TODO: 导出
14 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 18 //typedef void (^failureBlock)(NSMutableArray* errorArray, NSError *error);//失败数组,错误
19 19  
... ... @@ -37,20 +37,20 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) {
37 37  
38 38 @param maxImagesCount 最大图片
39 39 @param columnNumber 列个数
40   - @param delegate 代理(UIViewController<TZImagePickerControllerDelegate>)
  40 + @param delegate 代理(UIViewController<CNTZImagePickerControllerDelegate>)
41 41 @param pushPhotoPickerVc 是否跳转到相册
42 42 @param isSelectOriginalPhoto 是否原图
43 43 @param selectedAssets 选择图片
44 44 @param enterType 进入方式
45 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 52 @param maxImagesCount 最大限制
53   - @param delegate 代理(UIViewController<TZImagePickerControllerDelegate>)
  53 + @param delegate 代理(UIViewController<CNTZImagePickerControllerDelegate>)
54 54 @param selectedAssets 选中Assets
55 55 @param selectedPhotos 选中Photos
56 56 @param index 选中第几个
... ... @@ -58,29 +58,29 @@ typedef NS_ENUM(NSUInteger, CNImagePickerEnterType) {
58 58 @param enterType 进入方式
59 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 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 77 @param image 图片
78 78 @param location 地点
79 79 @param success 成功
80 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 89 @param asset asset
90 90 @return 返回类型
91 91 */
92   -+ (TZAssetModelMediaType)getAssetType:(id)asset;
  92 ++ (CNTZAssetModelMediaType)getAssetType:(id)asset;
93 93  
94 94  
95 95 @end
... ...
CNLiveImagePickerController/Classes/CNImagePickerManager.m
... ... @@ -14,7 +14,7 @@
14 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 19 if (![delegate isKindOfClass:[UIViewController class]]) {
20 20 return;
... ... @@ -22,7 +22,7 @@
22 22 UIViewController *vc = (UIViewController *)delegate;
23 23  
24 24 CNImagePickerController *imagePickerVc = [[CNImagePickerController alloc] initWithMaxImagesCount:maxImagesCount columnNumber:columnNumber delegate:delegate pushPhotoPickerVc:pushPhotoPickerVc];
25   - [imagePickerVc configTZImagePicker];//基本配置
  25 + [imagePickerVc configCNTZImagePicker];//基本配置
26 26 //特殊配置
27 27 switch (enterType) {
28 28  
... ... @@ -31,6 +31,8 @@
31 31 imagePickerVc.maxVideoDuration = kFriendsCircle_limit_video_max_upload;//编辑视频最大长度
32 32 // 3. 设置是否可以混选选择视频/图片/原图
33 33 imagePickerVc.allowPickingMultipleVideo = NO;
  34 + //4.选择一张图片情况下不可选视频
  35 + imagePickerVc.allowPickingVideo = NO;
34 36 break;
35 37 case CNImagePickerEnterTypeComment:
36 38 #pragma mark - TODO:根据不同设置
... ... @@ -80,7 +82,7 @@
80 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 86 NSLog(@"输出models = %@",models);
85 87 }];
86 88  
... ... @@ -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 95 if (![delegate isKindOfClass:[UIViewController class]]) {
94 96 return;
... ... @@ -96,7 +98,7 @@
96 98 UIViewController *vc = (UIViewController *)delegate;
97 99  
98 100 CNImagePickerController *imagePickerVc = [[CNImagePickerController alloc] initWithSelectedAssets:selectedAssets selectedPhotos:selectedPhotos index:index];
99   - [imagePickerVc configTZImagePicker];//基本配置
  101 + [imagePickerVc configCNTZImagePicker];//基本配置
100 102 imagePickerVc.modalPresentationStyle = UIModalPresentationFullScreen;
101 103 //特殊配置
102 104 switch (enterType) {
... ... @@ -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 143 if (![delegate isKindOfClass:[UIViewController class]]) {
142 144 return;
143 145 }
144 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 150 videoVC.isOther = YES;//(LXG)相册外进入
149 151 videoVC.model = model;
150 152 videoVC.modalPresentationStyle = UIModalPresentationFullScreen;
... ... @@ -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 161 if ([asset isKindOfClass:[PHAsset class]]) {
160 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 165 else if (phAsset.mediaType == PHAssetMediaTypeImage) {
164 166 if (iOS9_1Later) {
165 167 if (@available(iOS 9.1, *)) {
166 168 if (phAsset.mediaSubtypes == PHAssetMediaSubtypePhotoLive)
167 169 {
168   - type = TZAssetModelMediaTypeLivePhoto;
  170 + type = CNTZAssetModelMediaTypeLivePhoto;
169 171 }
170 172 } else {
171 173 // Fallback on earlier versions
... ... @@ -173,38 +175,38 @@
173 175 }
174 176 // Gif
175 177 if ([[phAsset valueForKey:@"filename"] hasSuffix:@"GIF"]) {
176   - type = TZAssetModelMediaTypePhotoGif;
  178 + type = CNTZAssetModelMediaTypePhotoGif;
177 179 }
178 180 }
179 181 } else {
180 182 if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
181   - type = TZAssetModelMediaTypeVideo;
  183 + type = CNTZAssetModelMediaTypeVideo;
182 184 }
183 185 }
184 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 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 199 if (error) {
198   - [tzImagePickerVc hideProgressHUD];
  200 + [CNTZImagePickerVc hideProgressHUD];
199 201 failure(error);
200 202 NSLog(@"图片保存失败 %@",error);
201 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 210 assetModel = [models lastObject];
209 211 }
210 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
... ... @@ -10,21 +10,21 @@
10 10 #import <Photos/Photos.h>
11 11  
12 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 22 @property (weak, nonatomic) UIButton *selectPhotoButton;
23 23 @property (weak, nonatomic) UIButton *cannotSelectLayerButton;
24   -@property (nonatomic, strong) TZAssetModel *model;
  24 +@property (nonatomic, strong) CNTZAssetModel *model;
25 25 @property (assign, nonatomic) NSInteger index;
26 26 @property (nonatomic, copy) void (^didSelectPhotoBlock)(BOOL);
27   -@property (nonatomic, assign) TZAssetCellType type;
  27 +@property (nonatomic, assign) CNTZAssetCellType type;
28 28 @property (nonatomic, assign) BOOL allowPickingGif;
29 29 @property (nonatomic, assign) BOOL allowPickingMultipleVideo;
30 30 @property (nonatomic, copy) NSString *representedAssetIdentifier;
... ... @@ -37,21 +37,21 @@ typedef enum : NSUInteger {
37 37 @property (assign, nonatomic) BOOL allowPreview;
38 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 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 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 52 @end
53 53  
54 54  
55   -@interface TZAssetCameraCell : UICollectionViewCell
  55 +@interface CNTZAssetCameraCell : UICollectionViewCell
56 56 @property (nonatomic, strong) UIImageView *imageView;
57 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 5 // Created by 谭真 on 15/12/24.
6 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 17 @property (weak, nonatomic) UIImageView *imageView; // The photo / 照片
18 18 @property (weak, nonatomic) UIImageView *selectImageView;
19 19 @property (weak, nonatomic) UILabel *indexLabel;
... ... @@ -22,23 +22,23 @@
22 22 @property (strong, nonatomic) UITapGestureRecognizer *tapGesture;
23 23  
24 24 @property (nonatomic, weak) UIImageView *videoImgView;
25   -@property (nonatomic, strong) TZProgressView *progressView;
  25 +@property (nonatomic, strong) CNTZProgressView *progressView;
26 26 @property (nonatomic, assign) int32_t bigImageRequestID;
27 27 @end
28 28  
29   -@implementation TZAssetCell
  29 +@implementation CNTZAssetCell
30 30  
31   -- (void)setModel:(TZAssetModel *)model {
  31 +- (void)setModel:(CNTZAssetModel *)model {
32 32 _model = model;
33 33 if (iOS8Later) {
34   - self.representedAssetIdentifier = [[TZImageManager manager] getAssetIdentifier:model.asset];
  34 + self.representedAssetIdentifier = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
35 35 }
36 36 if (self.useCachedImage && model.cachedImage) {
37 37 self.imageView.image = model.cachedImage;
38 38 } else {
39 39 self.model.cachedImage = nil;
40 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 42 // NSLog(@"输出导出参数info = %@",info);
43 43 if (photo) {//lxg: 裂图
44 44 model.isExport = YES;
... ... @@ -53,7 +53,7 @@
53 53 [weakSelf hideProgressView];
54 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 57 weakSelf.imageView.image = photo;
58 58 weakSelf.model.cachedImage = photo;
59 59 } else {
... ... @@ -74,13 +74,13 @@
74 74 }
75 75  
76 76 /** 处理视频 */
77   - if (model.type == TZAssetModelMediaTypeVideo) {
  77 + if (model.type == CNTZAssetModelMediaTypeVideo) {
78 78  
79 79 if (model.isCheckICloudType) {//是否检测来源
80 80 NSLog(@"输出检测过来源");
81 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 84 NSLog(@"输出识别后结果 = %@",info);
85 85 NSLog(@"Info:%@",info);
86 86 model.isCheckICloudType = YES;
... ... @@ -151,7 +151,7 @@
151 151  
152 152 self.type = (NSInteger)model.type;
153 153 // 让宽度/高度小于 最小可选照片尺寸 的图片不能选中
154   - if (![[TZImageManager manager] isPhotoSelectableWithAsset:model.asset]) {
  154 + if (![[CNTZImageManager manager] isPhotoSelectableWithAsset:model.asset]) {
155 155 if (_selectImageView.hidden == NO) {
156 156 self.selectPhotoButton.hidden = YES;
157 157 _selectImageView.hidden = YES;
... ... @@ -164,7 +164,7 @@
164 164 [self cancelBigImageRequest];
165 165 }
166 166 if (model.needOscillatoryAnimation) {
167   - [UIView showOscillatoryAnimationWithLayer:self.selectImageView.layer type:TZOscillatoryAnimationToBigger];
  167 + [UIView showOscillatoryAnimationWithLayer:self.selectImageView.layer type:CNTZOscillatoryAnimationToBigger];
168 168 }
169 169 model.needOscillatoryAnimation = NO;
170 170  
... ... @@ -189,7 +189,7 @@
189 189  
190 190 - (void)setShowSelectBtn:(BOOL)showSelectBtn {
191 191 _showSelectBtn = showSelectBtn;
192   - BOOL selectable = [[TZImageManager manager] isPhotoSelectableWithAsset:self.model.asset];
  192 + BOOL selectable = [[CNTZImageManager manager] isPhotoSelectableWithAsset:self.model.asset];
193 193 if (!self.selectPhotoButton.hidden) {
194 194 self.selectPhotoButton.hidden = !showSelectBtn || !selectable;
195 195 }
... ... @@ -198,9 +198,9 @@
198 198 }
199 199 }
200 200  
201   -- (void)setType:(TZAssetCellType)type {
  201 +- (void)setType:(CNTZAssetCellType)type {
202 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 204 _selectImageView.hidden = NO;
205 205 _selectPhotoButton.hidden = NO;
206 206 _bottomView.hidden = YES;
... ... @@ -209,17 +209,17 @@
209 209 _selectPhotoButton.hidden = YES;
210 210 }
211 211  
212   - if (type == TZAssetCellTypeVideo) {
  212 + if (type == CNTZAssetCellTypeVideo) {
213 213 self.bottomView.hidden = NO;
214 214 self.timeLength.text = _model.timeLength;
215 215 self.videoImgView.hidden = NO;
216   - _timeLength.tz_left = self.videoImgView.tz_right;
  216 + _timeLength.CNTZ_left = self.videoImgView.CNTZ_right;
217 217 _timeLength.textAlignment = NSTextAlignmentRight;
218   - } else if (type == TZAssetCellTypePhotoGif && self.allowPickingGif) {
  218 + } else if (type == CNTZAssetCellTypePhotoGif && self.allowPickingGif) {
219 219 self.bottomView.hidden = NO;
220 220 self.timeLength.text = @"GIF";
221 221 self.videoImgView.hidden = YES;
222   - _timeLength.tz_left = 5;
  222 + _timeLength.CNTZ_left = 5;
223 223 _timeLength.textAlignment = NSTextAlignmentLeft;
224 224 }
225 225 }
... ... @@ -241,8 +241,8 @@
241 241 }
242 242 self.selectImageView.image = sender.isSelected ? self.photoSelImage : self.photoDefImage;
243 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 248 [self requestBigImage];
... ... @@ -271,7 +271,7 @@
271 271 }
272 272  
273 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 275 [weakSelf hideProgressView];
276 276 } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
277 277 if (weakSelf.model.isSelected) {
... ... @@ -388,9 +388,9 @@
388 388 return _indexLabel;
389 389 }
390 390  
391   -- (TZProgressView *)progressView {
  391 +- (CNTZProgressView *)progressView {
392 392 if (_progressView == nil) {
393   - _progressView = [[TZProgressView alloc] init];
  393 + _progressView = [[CNTZProgressView alloc] init];
394 394 _progressView.hidden = YES;
395 395 [self addSubview:_progressView];
396 396 }
... ... @@ -401,26 +401,26 @@
401 401 [super layoutSubviews];
402 402 _cannotSelectLayerButton.frame = self.bounds;
403 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 405 } else {
406 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 409 if (_selectImageView.image.size.width <= 27) {
410 410 _selectImageView.contentMode = UIViewContentModeCenter;
411 411 } else {
412 412 _selectImageView.contentMode = UIViewContentModeScaleAspectFit;
413 413 }
414 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 417 static CGFloat progressWH = 20;
418   - CGFloat progressXY = (self.tz_width - progressWH) / 2;
  418 + CGFloat progressXY = (self.CNTZ_width - progressWH) / 2;
419 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 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 425 self.type = (NSInteger)self.model.type;
426 426 self.showSelectBtn = self.showSelectBtn;
... ... @@ -438,13 +438,13 @@
438 438  
439 439 @end
440 440  
441   -@interface TZAlbumCell ()
  441 +@interface CNTZAlbumCell ()
442 442 @property (weak, nonatomic) UIImageView *posterImageView;
443 443 @property (weak, nonatomic) UILabel *titleLabel;
444 444 @property (weak, nonatomic) UIImageView *enterImageView;
445 445 @end
446 446  
447   -@implementation TZAlbumCell
  447 +@implementation CNTZAlbumCell
448 448  
449 449 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
450 450 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
... ... @@ -452,7 +452,7 @@
452 452 return self;
453 453 }
454 454  
455   -- (void)setModel:(TZAlbumModel *)model {
  455 +- (void)setModel:(CNTZAlbumModel *)model {
456 456 _model = model;
457 457  
458 458 NSMutableAttributedString *nameString = [[NSMutableAttributedString alloc] initWithString:model.name attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor blackColor]}];
... ... @@ -460,7 +460,7 @@
460 460 [nameString appendAttributedString:countString];
461 461 self.titleLabel.attributedText = nameString;
462 462 __weak typeof(self) weakSelf = self;
463   - [[TZImageManager manager] getPostImageWithAlbumModel:model completion:^(UIImage *postImage) {
  463 + [[CNTZImageManager manager] getPostImageWithAlbumModel:model completion:^(UIImage *postImage) {
464 464 weakSelf.posterImageView.image = postImage;
465 465 }];
466 466 if (model.selectedCount) {
... ... @@ -482,10 +482,10 @@
482 482 /// For fitting iOS6
483 483 - (void)layoutSubviews {
484 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 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 489 self.posterImageView.frame = CGRectMake(0, 0, 70, 70);
490 490  
491 491 if (self.albumCellDidLayoutSubviewsBlock) {
... ... @@ -550,7 +550,7 @@
550 550  
551 551  
552 552  
553   -@implementation TZAssetCameraCell
  553 +@implementation CNTZAssetCameraCell
554 554  
555 555 - (instancetype)initWithFrame:(CGRect)frame {
556 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
... ... @@ -10,19 +10,19 @@
10 10 #import <UIKit/UIKit.h>
11 11  
12 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 20 @class PHAsset;
21   -@interface TZAssetModel : NSObject
  21 +@interface CNTZAssetModel : NSObject
22 22  
23 23 @property (nonatomic, strong) id asset; ///< PHAsset or ALAsset
24 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 26 @property (assign, nonatomic) BOOL needOscillatoryAnimation;
27 27 @property (nonatomic, copy) NSString *timeLength;
28 28 @property (strong, nonatomic) UIImage *cachedImage;
... ... @@ -35,14 +35,14 @@ typedef enum : NSUInteger {
35 35  
36 36 /// Init a photo dataModel With a asset
37 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 41 @end
42 42  
43 43  
44 44 @class PHFetchResult;
45   -@interface TZAlbumModel : NSObject
  45 +@interface CNTZAlbumModel : NSObject
46 46  
47 47 @property (nonatomic, strong) NSString *name; ///< The album name
48 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 5 // Created by 谭真 on 15/12/24.
6 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 16 model.asset = asset;
17 17 model.isSelected = NO;
18 18 model.type = type;
19 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 24 model.timeLength = timeLength;
25 25 return model;
26 26 }
... ... @@ -29,13 +29,13 @@
29 29  
30 30  
31 31  
32   -@implementation TZAlbumModel
  32 +@implementation CNTZAlbumModel
33 33  
34 34 - (void)setResult:(id)result needFetchAssets:(BOOL)needFetchAssets {
35 35 _result = result;
36 36 if (needFetchAssets) {
37 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 39 self->_models = models;
40 40 if (self->_selectedModels) {
41 41 [weakSelf checkSelectedModels];
... ... @@ -54,11 +54,11 @@
54 54 - (void)checkSelectedModels {
55 55 self.selectedCount = 0;
56 56 NSMutableArray *selectedAssets = [NSMutableArray array];
57   - for (TZAssetModel *model in _selectedModels) {
  57 + for (CNTZAssetModel *model in _selectedModels) {
58 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 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 5 // Created by ttouch on 2016/12/13.
6 6 // Copyright © 2016年 谭真. All rights reserved.
... ... @@ -8,9 +8,9 @@
8 8  
9 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 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 6 // Created by ttouch on 2016/12/13.
6 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 17 #pragma clang diagnostic push
17 18 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
18 19  
19   -@interface TZGifPhotoPreviewController () {
  20 +@interface CNTZGifPhotoPreviewController () {
20 21 UIView *_toolBar;
21 22 UIButton *_doneButton;
22 23 UIProgressView *_progress;
23 24  
24   - TZPhotoPreviewView *_previewView;
  25 + CNTZPhotoPreviewView *_previewView;
25 26  
26 27 UIStatusBarStyle _originStatusBarStyle;
27 28 }
28 29 @end
29 30  
30   -@implementation TZGifPhotoPreviewController
  31 +@implementation CNTZGifPhotoPreviewController
31 32  
32 33 - (void)viewDidLoad {
33 34 [super viewDidLoad];
34 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 40 [self configPreviewView];
40 41 [self configBottomToolBar];
... ... @@ -52,7 +53,7 @@
52 53 }
53 54  
54 55 - (void)configPreviewView {
55   - _previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero];
  56 + _previewView = [[CNTZPhotoPreviewView alloc] initWithFrame:CGRectZero];
56 57 _previewView.model = self.model;
57 58 __weak typeof(self) weakSelf = self;
58 59 [_previewView setSingleTapGestureBlock:^{
... ... @@ -70,12 +71,12 @@
70 71 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
71 72 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
72 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 78 } else {
78   - [_doneButton setTitle:[NSBundle tz_localizedStringForKey:@"Done"] forState:UIControlStateNormal];
  79 + [_doneButton setTitle:[NSBundle CNTZ_localizedStringForKey:@"Done"] forState:UIControlStateNormal];
79 80 [_doneButton setTitleColor:[UIColor colorWithRed:(83/255.0) green:(179/255.0) blue:(17/255.0) alpha:1.0] forState:UIControlStateNormal];
80 81 }
81 82 [_toolBar addSubview:_doneButton];
... ... @@ -84,15 +85,15 @@
84 85 byteLabel.textColor = [UIColor whiteColor];
85 86 byteLabel.font = [UIFont systemFontOfSize:13];
86 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 89 byteLabel.text = totalBytes;
89 90 }];
90 91 [_toolBar addSubview:byteLabel];
91 92  
92 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 104  
104 105 _previewView.frame = self.view.bounds;
105 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 119 - (void)signleTapAction {
119 120 _toolBar.hidden = !_toolBar.isHidden;
120 121 [self.navigationController setNavigationBarHidden:_toolBar.isHidden];
121   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  122 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
122 123 if (iOS7Later) {
123 124 if (_toolBar.isHidden) {
124 125 [UIApplication sharedApplication].statusBarHidden = YES;
125   - } else if (tzImagePickerVc.needShowStatusBar) {
  126 + } else if (CNTZImagePickerVc.needShowStatusBar) {
126 127 [UIApplication sharedApplication].statusBarHidden = NO;
127 128 }
128 129 }
... ... @@ -132,7 +133,7 @@
132 133 #pragma mark - TODO: 导出
133 134  
134 135 if (self.navigationController) {
135   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  136 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
136 137 if (imagePickerVc.autoDismiss) {
137 138 [self.navigationController dismissViewControllerAnimated:YES completion:^{
138 139 [self callDelegateMethod];
... ... @@ -148,7 +149,7 @@
148 149 }
149 150  
150 151 - (void)callDelegateMethod {
151   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  152 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
152 153 UIImage *animatedImage = _previewView.imageView.image;
153 154 if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingGifImage:sourceAssets:)]) {
154 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 5 // Created by 谭真 on 2016/12/5.
6 6 // Copyright © 2016年 谭真. All rights reserved.
... ... @@ -9,7 +9,7 @@
9 9 #import <Foundation/Foundation.h>
10 10 #import <UIKit/UIKit.h>
11 11  
12   -@interface TZImageCropManager : NSObject
  12 +@interface CNTZImageCropManager : NSObject
13 13  
14 14 /// 裁剪框背景的处理
15 15 + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop;
... ... @@ -32,8 +32,8 @@
32 32  
33 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 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 5 // Created by 谭真 on 2016/12/5.
6 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 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 18 + (void)overlayClippingWithView:(UIView *)view cropRect:(CGRect)cropRect containerView:(UIView *)containerView needCircleCrop:(BOOL)needCircleCrop {
... ... @@ -36,7 +36,7 @@
36 36 // 平移的处理
37 37 CGRect imageViewRect = [imageView convertRect:imageView.bounds toView:containerView];
38 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 40 CGPoint zeroPoint = CGPointMake((CGRectGetWidth(containerView.frame) - xMargin) / 2, containerView.center.y);
41 41 CGPoint translation = CGPointMake(point.x - zeroPoint.x, point.y - zeroPoint.y);
42 42 transform = CGAffineTransformTranslate(transform, translation.x, translation.y);
... ... @@ -50,7 +50,7 @@
50 50 cropSize:rect.size
51 51 imageViewSize:imageView.frame.size];
52 52 UIImage *cropedImage = [UIImage imageWithCGImage:imageRef];
53   - cropedImage = [[TZImageManager manager] fixOrientation:cropedImage];
  53 + cropedImage = [[CNTZImageManager manager] fixOrientation:cropedImage];
54 54 CGImageRelease(imageRef);
55 55 return cropedImage;
56 56 }
... ... @@ -115,9 +115,9 @@
115 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 121 if (!data) {
122 122 return nil;
123 123 }
... ... @@ -133,7 +133,7 @@
133 133 }
134 134 else {
135 135 // images数组过大时内存会飙升,在这里限制下最大count
136   - NSInteger maxCount = [TZImagePickerConfig sharedInstance].gifPreviewMaxImagesCount ?: 200;
  136 + NSInteger maxCount = [CNTZImagePickerConfig sharedInstance].gifPreviewMaxImagesCount ?: 200;
137 137 NSInteger interval = MAX((count + maxCount / 2) / maxCount, 1);
138 138  
139 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 5 // Created by 谭真 on 16/1/4.
6 6 // Copyright © 2016年 谭真. All rights reserved.
... ... @@ -10,18 +10,18 @@
10 10 #import <UIKit/UIKit.h>
11 11 #import <AVFoundation/AVFoundation.h>
12 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 19 @property (nonatomic, strong) PHCachingImageManager *cachingImageManager;
20 20  
21 21 + (instancetype)manager NS_SWIFT_NAME(default());
22 22 + (void)deallocManager;
23 23  
24   -@property (weak, nonatomic) id<TZImagePickerControllerDelegate> pickerDelegate;
  24 +@property (weak, nonatomic) id<CNTZImagePickerControllerDelegate> pickerDelegate;
25 25  
26 26 #pragma mark - 添加: 原有逻辑-会话id(LXG)
27 27 //zl__会话Id用于视频导出路径
... ... @@ -34,8 +34,8 @@
34 34 /// The pixel width of output image, Default is 828px / 导出图片的宽度,默认828像素宽
35 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 39 @property (nonatomic, assign) NSInteger columnNumber;
40 40  
41 41 /// Sort photos ascending by modificationDate,Default is YES
... ... @@ -54,16 +54,16 @@
54 54 - (void)requestAuthorizationWithCompletion:(void (^)(void))completion;
55 55  
56 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 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 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 68 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion;
69 69 - (int32_t)getPhotoWithAsset:(id)asset photoWidth:(CGFloat)photoWidth completion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion;
... ... @@ -114,7 +114,7 @@
114 114 - (UIImage *)fixOrientation:(UIImage *)aImage;
115 115  
116 116 /// 获取asset的资源类型
117   -- (TZAssetModelMediaType)getAssetType:(id)asset;
  117 +- (CNTZAssetModelMediaType)getAssetType:(id)asset;
118 118 /// 缩放图片至新尺寸
119 119 - (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size;
120 120  
... ... @@ -123,6 +123,6 @@
123 123  
124 124 @end
125 125  
126   -//@interface TZSortDescriptor : NSSortDescriptor
  126 +//@interface CNTZSortDescriptor : NSSortDescriptor
127 127 //
128 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 5 // Created by 谭真 on 16/1/4.
6 6 // Copyright © 2016年 谭真. All rights reserved.
7 7 //
8 8  
9   -#import "TZImageManager.h"
  9 +#import "CNTZImageManager.h"
10 10 #import <AssetsLibrary/AssetsLibrary.h>
11   -#import "TZAssetModel.h"
12   -#import "TZImagePickerController.h"
  11 +#import "CNTZAssetModel.h"
  12 +#import "CNTZImagePickerController.h"
13 13 #import <CNLiveBusinessTools/CNLiveBusinessTools.h>
14 14 #import <CNLiveUserManagement/CNUserInfoModel.h>
15 15 #import <CNLiveUserManagement/CNUserInfoManager.h>
16 16  
17   -@interface TZImageManager ()
  17 +@interface CNTZImageManager ()
18 18 #pragma clang diagnostic push
19 19 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
20 20 @property (nonatomic, strong) ALAssetsLibrary *assetLibrary;
21 21 @end
22 22  
23   -@implementation TZImageManager
  23 +@implementation CNTZImageManager
24 24  
25 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 30 static dispatch_once_t onceToken;
31 31  
32 32 + (instancetype)manager {
... ... @@ -37,7 +37,7 @@ static dispatch_once_t onceToken;
37 37 // manager.cachingImageManager.allowsCachingHighQualityImages = YES;
38 38 }
39 39  
40   - [manager configTZScreenWidth];
  40 + [manager configCNTZScreenWidth];
41 41 });
42 42 return manager;
43 43 }
... ... @@ -49,24 +49,24 @@ static dispatch_once_t onceToken;
49 49  
50 50 - (void)setPhotoWidth:(CGFloat)photoWidth {
51 51 _photoWidth = photoWidth;
52   - TZScreenWidth = photoWidth / 2;
  52 + CNTZScreenWidth = photoWidth / 2;
53 53 }
54 54  
55 55 - (void)setColumnNumber:(NSInteger)columnNumber {
56   - [self configTZScreenWidth];
  56 + [self configCNTZScreenWidth];
57 57  
58 58 _columnNumber = columnNumber;
59 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 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 124 #pragma mark - Get Album
125 125  
126 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 129 if (iOS8Later) {
130 130 PHFetchOptions *option = [[PHFetchOptions alloc] init];
131 131 if (!allowPickingVideo) option.predicate = [NSPredicate predicateWithFormat:@"mediaType == %ld", PHAssetMediaTypeImage];
... ... @@ -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 166 NSMutableArray *albumArr = [NSMutableArray array];
167 167 if (iOS8Later) {
168 168 PHFetchOptions *option = [[PHFetchOptions alloc] init];
... ... @@ -242,17 +242,17 @@ static dispatch_once_t onceToken;
242 242 #pragma mark - Get Assets
243 243  
244 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 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 251 NSMutableArray *photoArr = [NSMutableArray array];
252 252 if ([result isKindOfClass:[PHFetchResult class]]) {
253 253 PHFetchResult *fetchResult = (PHFetchResult *)result;
254 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 256 if (model) {
257 257 [photoArr addObject:model];
258 258 }
... ... @@ -271,7 +271,7 @@ static dispatch_once_t onceToken;
271 271 if (result == nil) {
272 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 275 if (model) {
276 276 [photoArr addObject:model];
277 277 }
... ... @@ -290,7 +290,7 @@ static dispatch_once_t onceToken;
290 290  
291 291 /// Get asset at index 获得下标为index的单个照片
292 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 294 if ([result isKindOfClass:[PHFetchResult class]]) {
295 295 PHFetchResult *fetchResult = (PHFetchResult *)result;
296 296 PHAsset *asset;
... ... @@ -301,7 +301,7 @@ static dispatch_once_t onceToken;
301 301 if (completion) completion(nil);
302 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 305 if (completion) completion(model);
306 306 } else if ([result isKindOfClass:[ALAssetsGroup class]]) {
307 307 ALAssetsGroup *group = (ALAssetsGroup *)result;
... ... @@ -316,7 +316,7 @@ static dispatch_once_t onceToken;
316 316 @try {
317 317 [group enumerateAssetsAtIndexes:indexSet options:NSEnumerationConcurrent usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
318 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 320 if (completion) completion(model);
321 321 }];
322 322 }
... ... @@ -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 330 BOOL canSelect = YES;
331 331 if ([self.pickerDelegate respondsToSelector:@selector(isAssetCanSelect:)]) {
332 332 canSelect = [self.pickerDelegate isAssetCanSelect:asset];
333 333 }
334 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 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 343 PHAsset *phAsset = (PHAsset *)asset;
344 344 if (self.hideWhenCanNotSelect) {
... ... @@ -347,20 +347,20 @@ static dispatch_once_t onceToken;
347 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 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 353 } else {
354 354 if (!allowPickingVideo){
355   - model = [TZAssetModel modelWithAsset:asset type:type];
  355 + model = [CNTZAssetModel modelWithAsset:asset type:type];
356 356 return model;
357 357 }
358 358 /// Allow picking video
359   - if (type == TZAssetModelMediaTypeVideo) {
  359 + if (type == CNTZAssetModelMediaTypeVideo) {
360 360 NSTimeInterval duration = [[asset valueForProperty:ALAssetPropertyDuration] doubleValue];
361 361 NSString *timeLength = [NSString stringWithFormat:@"%0.0f",duration];
362 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 364 } else {
365 365 if (self.hideWhenCanNotSelect) {
366 366 // 过滤掉尺寸不满足要求的图片
... ... @@ -368,30 +368,30 @@ static dispatch_once_t onceToken;
368 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 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 379 if ([asset isKindOfClass:[PHAsset class]]) {
380 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 383 else if (phAsset.mediaType == PHAssetMediaTypeImage) {
384 384 if (@available(iOS 9.1, *)) {
385   - // if (asset.mediaSubtypes == PHAssetMediaSubtypePhotoLive) type = TZAssetModelMediaTypeLivePhoto;
  385 + // if (asset.mediaSubtypes == PHAssetMediaSubtypePhotoLive) type = CNTZAssetModelMediaTypeLivePhoto;
386 386 }
387 387 // Gif
388 388 if ([[phAsset valueForKey:@"filename"] hasSuffix:@"GIF"]) {
389   - type = TZAssetModelMediaTypePhotoGif;
  389 + type = CNTZAssetModelMediaTypePhotoGif;
390 390 }
391 391 }
392 392 } else {
393 393 if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) {
394   - type = TZAssetModelMediaTypeVideo;
  394 + type = CNTZAssetModelMediaTypeVideo;
395 395 }
396 396 }
397 397 return type;
... ... @@ -424,16 +424,16 @@ static dispatch_once_t onceToken;
424 424 __block NSInteger dataLength = 0;
425 425 __block NSInteger assetCount = 0;
426 426 for (NSInteger i = 0; i < photos.count; i++) {
427   - TZAssetModel *model = photos[i];
  427 + CNTZAssetModel *model = photos[i];
428 428 if ([model.asset isKindOfClass:[PHAsset class]]) {
429 429 PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
430 430 options.resizeMode = PHImageRequestOptionsResizeModeFast;
431 431 options.networkAccessAllowed = YES;
432   - if (model.type == TZAssetModelMediaTypePhotoGif) {
  432 + if (model.type == CNTZAssetModelMediaTypePhotoGif) {
433 433 options.version = PHImageRequestOptionsVersionOriginal;
434 434 }
435 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 437 assetCount ++;
438 438 if (assetCount >= photos.count) {
439 439 NSString *bytes = [self getBytesFromDataLength:dataLength];
... ... @@ -442,7 +442,7 @@ static dispatch_once_t onceToken;
442 442 }];
443 443 } else if ([model.asset isKindOfClass:[ALAsset class]]) {
444 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 446 if (i >= photos.count - 1) {
447 447 NSString *bytes = [self getBytesFromDataLength:dataLength];
448 448 if (completion) completion(bytes);
... ... @@ -467,7 +467,7 @@ static dispatch_once_t onceToken;
467 467  
468 468 /// Get photo 获得照片本身
469 469 - (int32_t)getPhotoWithAsset:(id)asset completion:(void (^)(UIImage *, NSDictionary *, BOOL isDegraded))completion {
470   - CGFloat fullScreenWidth = TZScreenWidth;
  470 + CGFloat fullScreenWidth = CNTZScreenWidth;
471 471 if (fullScreenWidth > _photoPreviewMaxWidth) {
472 472 fullScreenWidth = _photoPreviewMaxWidth;
473 473 }
... ... @@ -479,7 +479,7 @@ static dispatch_once_t onceToken;
479 479 }
480 480  
481 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 483 if (fullScreenWidth > _photoPreviewMaxWidth) {
484 484 fullScreenWidth = _photoPreviewMaxWidth;
485 485 }
... ... @@ -519,12 +519,12 @@ static dispatch_once_t onceToken;
519 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 520 if ([asset isKindOfClass:[PHAsset class]]) {
521 521 CGSize imageSize;
522   - if (photoWidth < TZScreenWidth && photoWidth < _photoPreviewMaxWidth) {
  522 + if (photoWidth < CNTZScreenWidth && photoWidth < _photoPreviewMaxWidth) {
523 523 imageSize = AssetGridThumbnailSize;
524 524 } else {
525 525 PHAsset *phAsset = (PHAsset *)asset;
526 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 529 if (aspectRatio > 1.8) {
530 530 pixelWidth = pixelWidth * aspectRatio;
... ... @@ -567,7 +567,7 @@ static dispatch_once_t onceToken;
567 567 options.resizeMode = PHImageRequestOptionsResizeModeFast;
568 568 [[PHImageManager defaultManager] requestImageDataForAsset:asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
569 569 UIImage *resultImage = [UIImage imageWithData:imageData scale:0.1];
570   - if (![TZImagePickerConfig sharedInstance].notScaleImage) {
  570 + if (![CNTZImagePickerConfig sharedInstance].notScaleImage) {
571 571 resultImage = [self scaleImage:resultImage toSize:imageSize];
572 572 }
573 573 if (!resultImage) {
... ... @@ -587,7 +587,7 @@ static dispatch_once_t onceToken;
587 587 dispatch_async(dispatch_get_main_queue(), ^{
588 588 if (completion) completion(thumbnailImage,nil,YES);
589 589  
590   - if (photoWidth == TZScreenWidth || photoWidth == self->_photoPreviewMaxWidth) {
  590 + if (photoWidth == CNTZScreenWidth || photoWidth == self->_photoPreviewMaxWidth) {
591 591 dispatch_async(dispatch_get_global_queue(0,0), ^{
592 592 ALAssetRepresentation *assetRep = [alAsset defaultRepresentation];
593 593 CGImageRef fullScrennImageRef = [assetRep fullScreenImage];
... ... @@ -605,13 +605,13 @@ static dispatch_once_t onceToken;
605 605 }
606 606  
607 607 /// Get postImage / 获取封面图
608   -- (void)getPostImageWithAlbumModel:(TZAlbumModel *)model completion:(void (^)(UIImage *))completion {
  608 +- (void)getPostImageWithAlbumModel:(CNTZAlbumModel *)model completion:(void (^)(UIImage *))completion {
609 609 if (iOS8Later) {
610 610 id asset = [model.result lastObject];
611 611 if (!self.sortAscendingByModificationDate) {
612 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 615 if (photo) {//lxg: 裂图
616 616 model.isExport = YES;
617 617 }else{
... ... @@ -924,7 +924,7 @@ static dispatch_once_t onceToken;
924 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 928 AVMutableVideoComposition *videoComposition = [self fixedCompositionWithAsset:videoAsset];
929 929 if (videoComposition.renderSize.width) {
930 930 // 修正视频转向
... ... @@ -1049,8 +1049,8 @@ static dispatch_once_t onceToken;
1049 1049  
1050 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 1054 [model setResult:result needFetchAssets:needFetchAssets];
1055 1055 model.name = name;
1056 1056 model.isCameraRoll = isCameraRoll;
... ... @@ -1259,10 +1259,10 @@ static dispatch_once_t onceToken;
1259 1259 @end
1260 1260  
1261 1261  
1262   -//@implementation TZSortDescriptor
  1262 +//@implementation CNTZSortDescriptor
1263 1263 //
1264 1264 //- (id)reversedSortDescriptor {
1265   -// return [NSNumber numberWithBool:![TZImageManager manager].sortAscendingByModificationDate];
  1265 +// return [NSNumber numberWithBool:![CNTZImageManager manager].sortAscendingByModificationDate];
1266 1266 //}
1267 1267 //
1268 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 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 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 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
7 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 13 最初发现这个问题并修复的是@小鱼周凌宇同学,她的博客地址: http://zhoulingyu.com/
14 14 表示感谢~
... ... @@ -17,13 +17,13 @@
17 17 */
18 18  
19 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 28 #define iOS7Later ([UIDevice currentDevice].systemVersion.floatValue >= 7.0f)
29 29 #define iOS8Later ([UIDevice currentDevice].systemVersion.floatValue >= 8.0f)
... ... @@ -31,15 +31,15 @@
31 31 #define iOS9Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.0f)
32 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 38 #pragma mark -
39 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 43 /// This init method just for previewing photos / 用这个初始化方法以预览图片
44 44 - (instancetype)initWithSelectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index;
45 45 /// This init method for crop photo / 用这个初始化方法以裁剪图片
... ... @@ -166,10 +166,10 @@
166 166 /// The photos user have selected
167 167 /// 用户选中过的图片数组
168 168 @property (nonatomic, strong) NSMutableArray *selectedAssets;
169   -@property (nonatomic, strong) NSMutableArray<TZAssetModel *> *selectedModels;
  169 +@property (nonatomic, strong) NSMutableArray<CNTZAssetModel *> *selectedModels;
170 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 174 /// Minimum selectable photo width, Default is 0
175 175 /// 最小可选中的图片宽度,默认是0,小于这个宽度的图片不可选中
... ... @@ -201,15 +201,15 @@
201 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 202 @property (nonatomic, copy) void (^videoPreviewPageUIConfigBlock)(UIButton *playButton, UIView *toolBar, UIButton *doneButton);
203 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 206 /// 【自定义各页面/组件的frame】在界面viewDidLayoutSubviews/组件layoutSubviews后调用,允许外界修改frame等
207 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 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 209 @property (nonatomic, copy) void (^videoPreviewPageDidLayoutSubviewsBlock)(UIButton *playButton, UIView *toolBar, UIButton *doneButton);
210 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 214 #pragma mark -
215 215 - (id)showAlertWithTitle:(NSString *)title;
... ... @@ -266,19 +266,19 @@
266 266 // The picker should dismiss itself; when it dismissed these handle will be called.
267 267 // You can also set autoDismiss to NO, then the picker don't dismiss itself.
268 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 270 // The UIImage Object in photos default width is 828px, you can set it by photoWidth property.
271 271 // 这个照片选择器会自己dismiss,当选择器dismiss的时候,会执行下面的handle
272 272 // 你也可以设置autoDismiss属性为NO,选择器就不会自己dismis了
273 273 // 如果isSelectOriginalPhoto为YES,表明用户选择了原图
274   -// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:]
  274 +// 你可以通过一个asset获得原图,通过这个方法:[[CNTZImageManager manager] getOriginalPhotoWithAsset:completion:]
275 275 // photos数组里的UIImage对象,默认是828像素宽,你可以通过设置photoWidth属性的值来改变它
276 276 @property (nonatomic, copy) void (^didFinishPickingPhotosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto);
277 277 @property (nonatomic, copy) void (^didFinishPickingPhotosWithInfosHandle)(NSArray<UIImage *> *photos,NSArray *assets,BOOL isSelectOriginalPhoto,NSArray<NSDictionary *> *infos);
278 278 @property (nonatomic, copy) void (^imagePickerControllerDidCancelHandle)(void);
279 279  
280 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 284 // If user picking a video, this handle will be called.
... ... @@ -291,37 +291,37 @@
291 291 // 如果用户选择了一个gif图片,下面的handle会被执行
292 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 296 @end
297 297  
298 298  
299   -@protocol TZImagePickerControllerDelegate <NSObject>
  299 +@protocol CNTZImagePickerControllerDelegate <NSObject>
300 300 @optional
301 301 // The picker should dismiss itself; when it dismissed these handle will be called.
302 302 // You can also set autoDismiss to NO, then the picker don't dismiss itself.
303 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 305 // The UIImage Object in photos default width is 828px, you can set it by photoWidth property.
306 306 // 这个照片选择器会自己dismiss,当选择器dismiss的时候,会执行下面的handle
307 307 // 你也可以设置autoDismiss属性为NO,选择器就不会自己dismis了
308 308 // 如果isSelectOriginalPhoto为YES,表明用户选择了原图
309   -// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:]
  309 +// 你可以通过一个asset获得原图,通过这个方法:[[CNTZImageManager manager] getOriginalPhotoWithAsset:completion:]
310 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 316 // If user picking a video, this callback will be called.
317 317 // If system version > iOS8,asset is kind of PHAsset class, else is ALAsset class.
318 318 // 如果用户选择了一个视频,下面的handle会被执行
319 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 322 // If user picking a gif image, this callback will be called.
323 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 326 // Decide album show or not't
327 327 // 决定相册显示与否 albumName:相册名字 result:相册原始数据
... ... @@ -333,7 +333,7 @@
333 333 @end
334 334  
335 335  
336   -@interface TZAlbumPickerController : UIViewController
  336 +@interface CNTZAlbumPickerController : UIViewController
337 337 @property (nonatomic, assign) NSInteger columnNumber;
338 338 @property (assign, nonatomic) BOOL isFirstAppear;
339 339 - (void)configTableView;
... ... @@ -345,21 +345,21 @@
345 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 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 357 // 获得Info.plist数据字典
358   -+ (NSDictionary *)tz_getInfoDictionary;
  358 ++ (NSDictionary *)CNTZ_getInfoDictionary;
359 359 @end
360 360  
361 361  
362   -@interface TZImagePickerConfig : NSObject
  362 +@interface CNTZImagePickerConfig : NSObject
363 363 + (instancetype)sharedInstance;
364 364 @property (copy, nonatomic) NSString *preferredLanguage;
365 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
7 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 17 #import <sys/utsname.h>
18 18  
19   -@interface TZImagePickerController () {
  19 +@interface CNTZImagePickerController () {
20 20 NSTimer *_timer;
21 21 UILabel *_tipLabel;
22 22 UIButton *_settingBtn;
... ... @@ -30,12 +30,12 @@
30 30  
31 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 35 @property (nonatomic, assign) NSInteger columnNumber;
36 36 @end
37 37  
38   -@implementation TZImagePickerController
  38 +@implementation CNTZImagePickerController
39 39  
40 40 - (instancetype)init {
41 41 self = [super init];
... ... @@ -53,7 +53,7 @@
53 53 self.view.backgroundColor = [UIColor whiteColor];
54 54 self.navigationBar.barStyle = UIBarStyleBlack;
55 55 self.navigationBar.translucent = YES;
56   - [TZImageManager manager].shouldFixOrientation = NO;
  56 + [CNTZImageManager manager].shouldFixOrientation = NO;
57 57  
58 58 // Default appearance, you can reset these after this method
59 59 // 默认的外观,你可以在这个方法后重置
... ... @@ -120,9 +120,9 @@
120 120 - (void)configBarButtonItemAppearance {
121 121 UIBarButtonItem *barItem;
122 122 if (@available(iOS 9, *)) {
123   - barItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[TZImagePickerController class]]];
  123 + barItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[CNTZImagePickerController class]]];
124 124 } else {
125   - barItem = [UIBarButtonItem appearanceWhenContainedIn:[TZImagePickerController class], nil];
  125 + barItem = [UIBarButtonItem appearanceWhenContainedIn:[CNTZImagePickerController class], nil];
126 126 }
127 127 NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary];
128 128 textAttrs[NSForegroundColorAttributeName] = self.barItemTextColor;
... ... @@ -146,17 +146,17 @@
146 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 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 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 158 _pushPhotoPickerVc = pushPhotoPickerVc;
159   - TZAlbumPickerController *albumPickerVc = [[TZAlbumPickerController alloc] init];
  159 + CNTZAlbumPickerController *albumPickerVc = [[CNTZAlbumPickerController alloc] init];
160 160 albumPickerVc.isFirstAppear = YES;
161 161 albumPickerVc.columnNumber = columnNumber;
162 162 self = [super initWithRootViewController:albumPickerVc];
... ... @@ -184,31 +184,31 @@
184 184 self.columnNumber = columnNumber;
185 185 [self configDefaultSetting];
186 186  
187   - if (![[TZImageManager manager] authorizationStatusAuthorized]) {
  187 + if (![[CNTZImageManager manager] authorizationStatusAuthorized]) {
188 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 190 _tipLabel.textAlignment = NSTextAlignmentCenter;
191 191 _tipLabel.numberOfLines = 0;
192 192 _tipLabel.font = [UIFont systemFontOfSize:16];
193 193 _tipLabel.textColor = [UIColor blackColor];
194 194  
195   - NSDictionary *infoDict = [TZCommonTools tz_getInfoDictionary];
  195 + NSDictionary *infoDict = [CNTZCommonTools CNTZ_getInfoDictionary];
196 196 NSString *appName = [infoDict valueForKey:@"CFBundleDisplayName"];
197 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 199 _tipLabel.text = tipText;
200 200 [self.view addSubview:_tipLabel];
201 201  
202 202 if (iOS8Later) {
203 203 _settingBtn = [UIButton buttonWithType:UIButtonTypeSystem];
204 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 206 _settingBtn.titleLabel.font = [UIFont systemFontOfSize:18];
207 207 [_settingBtn addTarget:self action:@selector(settingBtnClick) forControlEvents:UIControlEventTouchUpInside];
208 208 [self.view addSubview:_settingBtn];
209 209 }
210 210  
211   - if ([TZImageManager authorizationStatus] == 0) {
  211 + if ([CNTZImageManager authorizationStatus] == 0) {
212 212 _timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(observeAuthrizationStatusChange) userInfo:nil repeats:NO];
213 213 }
214 214 } else {
... ... @@ -220,7 +220,7 @@
220 220  
221 221 /// This init method just for previewing photos / 用这个初始化方法以预览图片
222 222 - (instancetype)initWithSelectedAssets:(NSMutableArray *)selectedAssets selectedPhotos:(NSMutableArray *)selectedPhotos index:(NSInteger)index{
223   - TZPhotoPreviewController *previewVc = [[TZPhotoPreviewController alloc] init];
  223 + CNTZPhotoPreviewController *previewVc = [[CNTZPhotoPreviewController alloc] init];
224 224 self = [super initWithRootViewController:previewVc];
225 225 if (self) {
226 226 self.selectedAssets = [NSMutableArray arrayWithArray:selectedAssets];
... ... @@ -245,7 +245,7 @@
245 245  
246 246 /// This init method for crop photo / 用这个初始化方法以裁剪图片
247 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 249 self = [super initWithRootViewController:previewVc];
250 250 if (self) {
251 251 self.maxImagesCount = 1;
... ... @@ -288,8 +288,8 @@
288 288 self.iconThemeColor = [UIColor colorWithRed:31 / 255.0 green:185 / 255.0 blue:34 / 255.0 alpha:1.0];
289 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 295 - (void)configDefaultImageName {
... ... @@ -343,13 +343,13 @@
343 343 }
344 344  
345 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 355 - (void)setShowSelectedIndex:(BOOL)showSelectedIndex {
... ... @@ -357,39 +357,39 @@
357 357 if (showSelectedIndex) {
358 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 363 - (void)setShowPhotoCannotSelectLayer:(BOOL)showPhotoCannotSelectLayer {
364 364 _showPhotoCannotSelectLayer = showPhotoCannotSelectLayer;
365   - [TZImagePickerConfig sharedInstance].showPhotoCannotSelectLayer = showPhotoCannotSelectLayer;
  365 + [CNTZImagePickerConfig sharedInstance].showPhotoCannotSelectLayer = showPhotoCannotSelectLayer;
366 366 }
367 367  
368 368 - (void)setNotScaleImage:(BOOL)notScaleImage {
369 369 _notScaleImage = notScaleImage;
370   - [TZImagePickerConfig sharedInstance].notScaleImage = notScaleImage;
  370 + [CNTZImagePickerConfig sharedInstance].notScaleImage = notScaleImage;
371 371 }
372 372  
373 373 - (void)setNeedFixComposition:(BOOL)needFixComposition {
374 374 _needFixComposition = needFixComposition;
375   - [TZImagePickerConfig sharedInstance].needFixComposition = needFixComposition;
  375 + [CNTZImagePickerConfig sharedInstance].needFixComposition = needFixComposition;
376 376 }
377 377  
378 378 - (void)observeAuthrizationStatusChange {
379 379 [_timer invalidate];
380 380 _timer = nil;
381   - if ([TZImageManager authorizationStatus] == 0) {
  381 + if ([CNTZImageManager authorizationStatus] == 0) {
382 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 386 [_tipLabel removeFromSuperview];
387 387 [_settingBtn removeFromSuperview];
388 388  
389 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 393 [albumPickerVc configTableView];
394 394 }
395 395 }
... ... @@ -399,11 +399,11 @@
399 399 _didPushPhotoPickerVc = NO;
400 400 // 1.6.8 判断是否需要push到照片选择页,如果_pushPhotoPickerVc为NO,则不push
401 401 if (!_didPushPhotoPickerVc && _pushPhotoPickerVc) {
402   - TZPhotoPickerController *photoPickerVc = [[TZPhotoPickerController alloc] init];
  402 + CNTZPhotoPickerController *photoPickerVc = [[CNTZPhotoPickerController alloc] init];
403 403 photoPickerVc.isFirstAppear = YES;
404 404 photoPickerVc.columnNumber = self.columnNumber;
405 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 407 photoPickerVc.model = model;
408 408 [weakSelf pushViewController:photoPickerVc animated:YES];
409 409 self->_didPushPhotoPickerVc = YES;
... ... @@ -414,11 +414,11 @@
414 414 - (id)showAlertWithTitle:(NSString *)title {
415 415 if (iOS8Later) {
416 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 418 [self presentViewController:alertController animated:YES completion:nil];
419 419 return alertController;
420 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 422 [alertView show];
423 423 return alertView;
424 424 }
... ... @@ -503,14 +503,14 @@
503 503  
504 504 - (void)setCircleCropRadius:(NSInteger)circleCropRadius {
505 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 509 - (void)setCropRect:(CGRect)cropRect {
510 510 _cropRect = cropRect;
511 511 _cropRectPortrait = cropRect;
512 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 516 - (void)setTimeout:(NSInteger)timeout {
... ... @@ -522,9 +522,9 @@
522 522 }
523 523 }
524 524  
525   -- (void)setPickerDelegate:(id<TZImagePickerControllerDelegate>)pickerDelegate {
  525 +- (void)setPickerDelegate:(id<CNTZImagePickerControllerDelegate>)pickerDelegate {
526 526 _pickerDelegate = pickerDelegate;
527   - [TZImageManager manager].pickerDelegate = pickerDelegate;
  527 + [CNTZImageManager manager].pickerDelegate = pickerDelegate;
528 528 }
529 529  
530 530 - (void)setColumnNumber:(NSInteger)columnNumber {
... ... @@ -535,24 +535,24 @@
535 535 _columnNumber = 6;
536 536 }
537 537  
538   - TZAlbumPickerController *albumPickerVc = [self.childViewControllers firstObject];
  538 + CNTZAlbumPickerController *albumPickerVc = [self.childViewControllers firstObject];
539 539 albumPickerVc.columnNumber = _columnNumber;
540   - [TZImageManager manager].columnNumber = _columnNumber;
  540 + [CNTZImageManager manager].columnNumber = _columnNumber;
541 541 }
542 542  
543 543 - (void)setMinPhotoWidthSelectable:(NSInteger)minPhotoWidthSelectable {
544 544 _minPhotoWidthSelectable = minPhotoWidthSelectable;
545   - [TZImageManager manager].minPhotoWidthSelectable = minPhotoWidthSelectable;
  545 + [CNTZImageManager manager].minPhotoWidthSelectable = minPhotoWidthSelectable;
546 546 }
547 547  
548 548 - (void)setMinPhotoHeightSelectable:(NSInteger)minPhotoHeightSelectable {
549 549 _minPhotoHeightSelectable = minPhotoHeightSelectable;
550   - [TZImageManager manager].minPhotoHeightSelectable = minPhotoHeightSelectable;
  550 + [CNTZImageManager manager].minPhotoHeightSelectable = minPhotoHeightSelectable;
551 551 }
552 552  
553 553 - (void)setHideWhenCanNotSelect:(BOOL)hideWhenCanNotSelect {
554 554 _hideWhenCanNotSelect = hideWhenCanNotSelect;
555   - [TZImageManager manager].hideWhenCanNotSelect = hideWhenCanNotSelect;
  555 + [CNTZImageManager manager].hideWhenCanNotSelect = hideWhenCanNotSelect;
556 556 }
557 557  
558 558 - (void)setPhotoPreviewMaxWidth:(CGFloat)photoPreviewMaxWidth {
... ... @@ -562,12 +562,12 @@
562 562 } else if (photoPreviewMaxWidth < 500) {
563 563 _photoPreviewMaxWidth = 500;
564 564 }
565   - [TZImageManager manager].photoPreviewMaxWidth = _photoPreviewMaxWidth;
  565 + [CNTZImageManager manager].photoPreviewMaxWidth = _photoPreviewMaxWidth;
566 566 }
567 567  
568 568 - (void)setPhotoWidth:(CGFloat)photoWidth {
569 569 _photoWidth = photoWidth;
570   - [TZImageManager manager].photoWidth = photoWidth;
  570 + [CNTZImageManager manager].photoWidth = photoWidth;
571 571 }
572 572  
573 573 - (void)setSelectedAssets:(NSMutableArray *)selectedAssets {
... ... @@ -575,7 +575,7 @@
575 575 _selectedModels = [NSMutableArray array];
576 576 _selectedAssetIds = [NSMutableArray array];
577 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 579 model.isSelected = YES;
580 580 [self addSelectedModel:model];
581 581 }
... ... @@ -583,7 +583,7 @@
583 583  
584 584 - (void)setAllowPickingImage:(BOOL)allowPickingImage {
585 585 _allowPickingImage = allowPickingImage;
586   - [TZImagePickerConfig sharedInstance].allowPickingImage = allowPickingImage;
  586 + [CNTZImagePickerConfig sharedInstance].allowPickingImage = allowPickingImage;
587 587 if (!allowPickingImage) {
588 588 _allowTakePicture = NO;
589 589 }
... ... @@ -591,7 +591,7 @@
591 591  
592 592 - (void)setAllowPickingVideo:(BOOL)allowPickingVideo {
593 593 _allowPickingVideo = allowPickingVideo;
594   - [TZImagePickerConfig sharedInstance].allowPickingVideo = allowPickingVideo;
  594 + [CNTZImagePickerConfig sharedInstance].allowPickingVideo = allowPickingVideo;
595 595 if (!allowPickingVideo) {
596 596 _allowTakeVideo = NO;
597 597 }
... ... @@ -599,19 +599,19 @@
599 599  
600 600 - (void)setPreferredLanguage:(NSString *)preferredLanguage {
601 601 _preferredLanguage = preferredLanguage;
602   - [TZImagePickerConfig sharedInstance].preferredLanguage = preferredLanguage;
  602 + [CNTZImagePickerConfig sharedInstance].preferredLanguage = preferredLanguage;
603 603 [self configDefaultBtnTitle];
604 604 }
605 605  
606 606 - (void)setLanguageBundle:(NSBundle *)languageBundle {
607 607 _languageBundle = languageBundle;
608   - [TZImagePickerConfig sharedInstance].languageBundle = languageBundle;
  608 + [CNTZImagePickerConfig sharedInstance].languageBundle = languageBundle;
609 609 [self configDefaultBtnTitle];
610 610 }
611 611  
612 612 - (void)setSortAscendingByModificationDate:(BOOL)sortAscendingByModificationDate {
613 613 _sortAscendingByModificationDate = sortAscendingByModificationDate;
614   - [TZImageManager manager].sortAscendingByModificationDate = sortAscendingByModificationDate;
  614 + [CNTZImageManager manager].sortAscendingByModificationDate = sortAscendingByModificationDate;
615 615 }
616 616  
617 617 - (void)settingBtnClick {
... ... @@ -627,18 +627,18 @@
627 627  
628 628 - (void)dealloc {
629 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 634 [_selectedModels addObject:model];
635   - NSString *assetId = [[TZImageManager manager] getAssetIdentifier:model.asset];
  635 + NSString *assetId = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
636 636 [_selectedAssetIds addObject:assetId];
637 637 }
638 638  
639   -- (void)removeSelectedModel:(TZAssetModel *)model {
  639 +- (void)removeSelectedModel:(CNTZAssetModel *)model {
640 640 [_selectedModels removeObject:model];
641   - NSString *assetId = [[TZImageManager manager] getAssetIdentifier:model.asset];
  641 + NSString *assetId = [[CNTZImageManager manager] getAssetIdentifier:model.asset];
642 642 [_selectedAssetIds removeObject:assetId];
643 643 }
644 644  
... ... @@ -692,7 +692,7 @@
692 692 - (void)viewDidLayoutSubviews {
693 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 696 _HUDIndicatorView.frame = CGRectMake(45, 15, 30, 30);
697 697 _HUDLabel.frame = CGRectMake(0,40, 120, 50);
698 698 }
... ... @@ -719,8 +719,8 @@
719 719 }
720 720  
721 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 725 if (self.imagePickerControllerDidCancelHandle) {
726 726 self.imagePickerControllerDidCancelHandle();
... ... @@ -730,62 +730,62 @@
730 730 @end
731 731  
732 732  
733   -@interface TZAlbumPickerController ()<UITableViewDataSource,UITableViewDelegate> {
  733 +@interface CNTZAlbumPickerController ()<UITableViewDataSource,UITableViewDelegate> {
734 734 UITableView *_tableView;
735 735 }
736 736 @property (nonatomic, strong) NSMutableArray *albumArr;
737 737 @end
738 738  
739   -@implementation TZAlbumPickerController
  739 +@implementation CNTZAlbumPickerController
740 740  
741 741 - (void)viewDidLoad {
742 742 [super viewDidLoad];
743 743 self.isFirstAppear = YES;
744 744 self.view.backgroundColor = [UIColor whiteColor];
745 745  
746   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  746 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
747 747 self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:imagePickerVc.cancelBtnTitleStr style:UIBarButtonItemStylePlain target:imagePickerVc action:@selector(cancelButtonClick)];
748 748 [self.navigationItem.rightBarButtonItem setTintColor:[UIColor blackColor]];
749 749 }
750 750  
751 751 - (void)viewWillAppear:(BOOL)animated {
752 752 [super viewWillAppear:animated];
753   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  753 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
754 754 [imagePickerVc hideProgressHUD];
755 755 if (imagePickerVc.allowPickingImage) {
756   - self.navigationItem.title = [NSBundle tz_localizedStringForKey:@"Photos"];
  756 + self.navigationItem.title = [NSBundle CNTZ_localizedStringForKey:@"Photos"];
757 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 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 765 [self configTableView];
766 766 }
767 767  
768 768 - (void)configTableView {
769   - if (![[TZImageManager manager] authorizationStatusAuthorized]) {
  769 + if (![[CNTZImageManager manager] authorizationStatusAuthorized]) {
770 770 return;
771 771 }
772 772  
773 773 if (self.isFirstAppear) {
774   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  774 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
775 775 [imagePickerVc showProgressHUD];
776 776 }
777 777 __weak typeof(self) weakSelf = self;
778 778 dispatch_async(dispatch_get_global_queue(0, 0), ^{
779 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 783 if (models == nil) {
784 784 [imagePickerVc hideProgressHUD];
785 785 return;
786 786 }
787 787 self->_albumArr = [NSMutableArray arrayWithArray:models];
788   - for (TZAlbumModel *albumModel in self->_albumArr) {
  788 + for (CNTZAlbumModel *albumModel in self->_albumArr) {
789 789 albumModel.selectedModels = imagePickerVc.selectedModels;
790 790 }
791 791 [imagePickerVc hideProgressHUD];
... ... @@ -801,7 +801,7 @@
801 801 self->_tableView.tableFooterView = [[UIView alloc] init];
802 802 self->_tableView.dataSource = self;
803 803 self->_tableView.delegate = self;
804   - [self->_tableView registerClass:[TZAlbumCell class] forCellReuseIdentifier:@"TZAlbumCell"];
  804 + [self->_tableView registerClass:[CNTZAlbumCell class] forCellReuseIdentifier:@"CNTZAlbumCell"];
805 805 [weakSelf.view addSubview:self->_tableView];
806 806 } else {
807 807 [self->_tableView reloadData];
... ... @@ -815,7 +815,7 @@
815 815 - (void)dealloc {
816 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 826  
827 827 CGFloat top = 0;
828 828 CGFloat tableViewHeight = 0;
829   - CGFloat naviBarHeight = self.navigationController.navigationBar.tz_height;
  829 + CGFloat naviBarHeight = self.navigationController.navigationBar.CNTZ_height;
830 830 BOOL isStatusBarHidden = [UIApplication sharedApplication].isStatusBarHidden;
831 831 if (self.navigationController.navigationBar.isTranslucent) {
832 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 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 841 #pragma mark - UITableViewDataSource && Delegate
... ... @@ -845,8 +845,8 @@
845 845 }
846 846  
847 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 850 cell.albumCellDidLayoutSubviewsBlock = imagePickerVc.albumCellDidLayoutSubviewsBlock;
851 851 cell.albumCellDidSetModelBlock = imagePickerVc.albumCellDidSetModelBlock;
852 852 cell.selectedCountButton.backgroundColor = imagePickerVc.iconThemeColor;
... ... @@ -856,9 +856,9 @@
856 856 }
857 857  
858 858 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
859   - TZPhotoPickerController *photoPickerVc = [[TZPhotoPickerController alloc] init];
  859 + CNTZPhotoPickerController *photoPickerVc = [[CNTZPhotoPickerController alloc] init];
860 860 photoPickerVc.columnNumber = self.columnNumber;
861   - TZAlbumModel *model = _albumArr[indexPath.row];
  861 + CNTZAlbumModel *model = _albumArr[indexPath.row];
862 862 photoPickerVc.model = model;
863 863 [self.navigationController pushViewController:photoPickerVc animated:YES];
864 864 [tableView deselectRowAtIndexPath:indexPath animated:NO];
... ... @@ -872,7 +872,7 @@
872 872 @implementation UIImage (MyBundle)
873 873  
874 874 + (UIImage *)imageNamedFromMyBundle:(NSString *)name {
875   - NSBundle *imageBundle = [NSBundle tz_imagePickerBundle];
  875 + NSBundle *imageBundle = [NSBundle CNTZ_imagePickerBundle];
876 876 name = [name stringByAppendingString:@"@2x"];
877 877 NSString *imagePath = [imageBundle pathForResource:name ofType:@"png"];
878 878 UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
... ... @@ -887,9 +887,9 @@
887 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 893 if (iOS8Later) {
894 894 return [self containsString:string];
895 895 } else {
... ... @@ -900,7 +900,7 @@
900 900  
901 901 #pragma clang diagnostic push
902 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 904 CGSize size;
905 905 if (iOS7Later) {
906 906 size = [self boundingRectWithSize:maxSize options:NSStringDrawingUsesFontLeading attributes:attributes context:nil].size;
... ... @@ -914,29 +914,23 @@
914 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 921 return (CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(375, 812)) ||
922 922 CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(812, 375)) ||
923 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 932 // 获得Info.plist数据字典
939   -+ (NSDictionary *)tz_getInfoDictionary {
  933 ++ (NSDictionary *)CNTZ_getInfoDictionary {
940 934 NSDictionary *infoDict = [NSBundle mainBundle].localizedInfoDictionary;
941 935 if (!infoDict || !infoDict.count) {
942 936 infoDict = [NSBundle mainBundle].infoDictionary;
... ... @@ -950,14 +944,14 @@
950 944 @end
951 945  
952 946  
953   -@implementation TZImagePickerConfig
  947 +@implementation CNTZImagePickerConfig
954 948  
955 949 + (instancetype)sharedInstance {
956 950 static dispatch_once_t onceToken;
957   - static TZImagePickerConfig *config = nil;
  951 + static CNTZImagePickerConfig *config = nil;
958 952 dispatch_once(&onceToken, ^{
959 953 if (config == nil) {
960   - config = [[TZImagePickerConfig alloc] init];
  954 + config = [[CNTZImagePickerConfig alloc] init];
961 955 config.preferredLanguage = nil;
962 956 config.gifPreviewMaxImagesCount = 200;
963 957 }
... ... @@ -980,7 +974,7 @@
980 974 } else {
981 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 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 5 // Created by 谭真 on 2017/06/03.
6 6 // Copyright © 2017年 谭真. All rights reserved.
... ... @@ -10,7 +10,7 @@
10 10 #import <Foundation/Foundation.h>
11 11 #import <CoreLocation/CoreLocation.h>
12 12  
13   -@interface TZLocationManager : NSObject
  13 +@interface CNTZLocationManager : NSObject
14 14  
15 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 5 // Created by 谭真 on 2017/06/03.
6 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 13 @property (nonatomic, strong) CLLocationManager *locationManager;
14 14 /// 定位成功的回调block
15 15 @property (nonatomic, copy) void (^successBlock)(NSArray<CLLocation *> *);
... ... @@ -19,10 +19,10 @@
19 19 @property (nonatomic, copy) void (^failureBlock)(NSError *error);
20 20 @end
21 21  
22   -@implementation TZLocationManager
  22 +@implementation CNTZLocationManager
23 23  
24 24 + (instancetype)manager {
25   - static TZLocationManager *manager;
  25 + static CNTZLocationManager *manager;
26 26 static dispatch_once_t onceToken;
27 27 dispatch_once(&onceToken, ^{
28 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
... ... @@ -8,15 +8,15 @@
8 8  
9 9 #import <UIKit/UIKit.h>
10 10  
11   -@class TZAlbumModel;
12   -@interface TZPhotoPickerController : UIViewController
  11 +@class CNTZAlbumModel;
  12 +@interface CNTZPhotoPickerController : UIViewController
13 13  
14 14 @property (nonatomic, assign) BOOL isFirstAppear;
15 15 @property (nonatomic, assign) NSInteger columnNumber;
16   -@property (nonatomic, strong) TZAlbumModel *model;
  16 +@property (nonatomic, strong) CNTZAlbumModel *model;
17 17 @end
18 18  
19 19  
20   -@interface TZCollectionView : UICollectionView
  20 +@interface CNTZCollectionView : UICollectionView
21 21  
22 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 5 // Created by 谭真 on 15/12/24.
6 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 19 #import <MobileCoreServices/MobileCoreServices.h>
20 20 #import <AssetsLibrary/AssetsLibrary.h>///lxg
21 21  
... ... @@ -86,7 +86,7 @@
86 86  
87 87 @end
88 88  
89   -@interface TZPhotoPickerController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIAlertViewDelegate> {
  89 +@interface CNTZPhotoPickerController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIAlertViewDelegate> {
90 90 NSMutableArray *_models;
91 91  
92 92 UIView *_bottomToolBar;
... ... @@ -107,7 +107,7 @@
107 107 }
108 108 @property CGRect previousPreheatRect;
109 109 @property (nonatomic, assign) BOOL isSelectOriginalPhoto;
110   -@property (nonatomic, strong) TZCollectionView *collectionView;
  110 +@property (nonatomic, strong) CNTZCollectionView *collectionView;
111 111 @property (strong, nonatomic) UICollectionViewFlowLayout *layout;
112 112 @property (nonatomic, strong) UIImagePickerController *imagePickerVc;
113 113 @property (strong, nonatomic) CLLocation *location;
... ... @@ -117,7 +117,7 @@
117 117 static CGSize AssetGridThumbnailSize;
118 118 static CGFloat itemMargin = 5;
119 119  
120   -@implementation TZPhotoPickerController
  120 +@implementation CNTZPhotoPickerController
121 121  
122 122 #pragma clang diagnostic push
123 123 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
... ... @@ -130,15 +130,15 @@ static CGFloat itemMargin = 5;
130 130 _imagePickerVc.navigationBar.barTintColor = self.navigationController.navigationBar.barTintColor;
131 131 }
132 132 _imagePickerVc.navigationBar.tintColor = self.navigationController.navigationBar.tintColor;
133   - UIBarButtonItem *tzBarItem, *BarItem;
  133 + UIBarButtonItem *CNTZBarItem, *BarItem;
134 134 if (@available(iOS 9, *)) {
135   - tzBarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[TZImagePickerController class]]];
  135 + CNTZBarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[CNTZImagePickerController class]]];
136 136 BarItem = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UIImagePickerController class]]];
137 137 } else {
138   - tzBarItem = [UIBarButtonItem appearanceWhenContainedIn:[TZImagePickerController class], nil];
  138 + CNTZBarItem = [UIBarButtonItem appearanceWhenContainedIn:[CNTZImagePickerController class], nil];
139 139 BarItem = [UIBarButtonItem appearanceWhenContainedIn:[UIImagePickerController class], nil];
140 140 }
141   - NSDictionary *titleTextAttributes = [tzBarItem titleTextAttributesForState:UIControlStateNormal];
  141 + NSDictionary *titleTextAttributes = [CNTZBarItem titleTextAttributesForState:UIControlStateNormal];
142 142 [BarItem setTitleTextAttributes:titleTextAttributes forState:UIControlStateNormal];
143 143 }
144 144 return _imagePickerVc;
... ... @@ -148,35 +148,35 @@ static CGFloat itemMargin = 5;
148 148 [super viewDidLoad];
149 149 _isClickDone = NO;
150 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 153 _shouldScrollToBottom = YES;
154 154 self.view.backgroundColor = [UIColor whiteColor];
155 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 158 UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
159 159 leftButton.frame = CGRectMake(0, 0, 44, 44);
160 160 [leftButton addTarget:self action:@selector(navLeftBarButtonClick) forControlEvents:UIControlEventTouchUpInside];
161   - tzImagePickerVc.navLeftBarButtonSettingBlock(leftButton);
  161 + CNTZImagePickerVc.navLeftBarButtonSettingBlock(leftButton);
162 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 167 // [self resetCachedAssets];
168 168 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didChangeStatusBarOrientationNotification:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];
169 169 }
170 170  
171 171 - (void)fetchAssetModels {
172   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  172 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
173 173 if (_isFirstAppear && !_model.models.count) {
174   - [tzImagePickerVc showProgressHUD];
  174 + [CNTZImagePickerVc showProgressHUD];
175 175 }
176 176 __weak typeof(self) weakSelf = self;
177 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 180 self->_model = model;
181 181 self->_models = [NSMutableArray arrayWithArray:self->_model.models];
182 182 [weakSelf initSubviews];
... ... @@ -184,7 +184,7 @@ static CGFloat itemMargin = 5;
184 184 } else {
185 185 if (self->_showTakePhotoBtn || !iOS8Later || self->_isFirstAppear) {
186 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 188 self->_models = [NSMutableArray arrayWithArray:models];
189 189 [weakSelf initSubviews];
190 190 }];
... ... @@ -199,8 +199,8 @@ static CGFloat itemMargin = 5;
199 199 - (void)initSubviews {
200 200 __weak typeof(self) weakSelf = self;
201 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 205 [weakSelf checkSelectedModels];
206 206 [weakSelf configCollectionView];
... ... @@ -213,8 +213,8 @@ static CGFloat itemMargin = 5;
213 213  
214 214 - (void)viewWillDisappear:(BOOL)animated {
215 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 220 - (BOOL)prefersStatusBarHidden {
... ... @@ -223,7 +223,7 @@ static CGFloat itemMargin = 5;
223 223  
224 224 - (void)configCollectionView {
225 225 _layout = [[UICollectionViewFlowLayout alloc] init];
226   - _collectionView = [[TZCollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:_layout];
  226 + _collectionView = [[CNTZCollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:_layout];
227 227 _collectionView.backgroundColor = [UIColor whiteColor];
228 228 _collectionView.dataSource = self;
229 229 _collectionView.delegate = self;
... ... @@ -231,13 +231,13 @@ static CGFloat itemMargin = 5;
231 231 _collectionView.contentInset = UIEdgeInsetsMake(itemMargin, itemMargin, itemMargin, itemMargin);
232 232  
233 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 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 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 243 - (void)viewWillAppear:(BOOL)animated {
... ... @@ -263,8 +263,8 @@ static CGFloat itemMargin = 5;
263 263 }
264 264  
265 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 269 _bottomToolBar = [[UIView alloc] initWithFrame:CGRectZero];
270 270 CGFloat rgb = 253 / 255.0;
... ... @@ -273,27 +273,27 @@ static CGFloat itemMargin = 5;
273 273 _previewButton = [UIButton buttonWithType:UIButtonTypeCustom];
274 274 [_previewButton addTarget:self action:@selector(previewButtonClick) forControlEvents:UIControlEventTouchUpInside];
275 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 278 [_previewButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
279 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 283 _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom];
284 284 _originalPhotoButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
285 285 [_originalPhotoButton addTarget:self action:@selector(originalPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside];
286 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 289 [_originalPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
290 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 293 _originalPhotoButton.imageView.clipsToBounds = YES;
294 294 _originalPhotoButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
295 295 _originalPhotoButton.selected = _isSelectOriginalPhoto;
296   - _originalPhotoButton.enabled = tzImagePickerVc.selectedModels.count > 0;
  296 + _originalPhotoButton.enabled = CNTZImagePickerVc.selectedModels.count > 0;
297 297  
298 298 _originalPhotoLabel = [[UILabel alloc] init];
299 299 _originalPhotoLabel.textAlignment = NSTextAlignmentLeft;
... ... @@ -305,14 +305,14 @@ static CGFloat itemMargin = 5;
305 305 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
306 306 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
307 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 316 _numberImageView.clipsToBounds = YES;
317 317 _numberImageView.contentMode = UIViewContentModeScaleAspectFit;
318 318 _numberImageView.backgroundColor = [UIColor clearColor];
... ... @@ -321,13 +321,13 @@ static CGFloat itemMargin = 5;
321 321 _numberLabel.font = [UIFont systemFontOfSize:15];
322 322 _numberLabel.textColor = [UIColor whiteColor];
323 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 326 _numberLabel.backgroundColor = [UIColor clearColor];
327 327 #pragma mark - 添加: 选择图片个数显示(LXG)
328 328 _numberImageView.hidden = YES;
329 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 332 _divideLine = [[UIView alloc] init];
333 333 CGFloat rgb2 = 222 / 255.0;
... ... @@ -342,8 +342,8 @@ static CGFloat itemMargin = 5;
342 342 [self.view addSubview:_bottomToolBar];
343 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 352 - (void)viewDidLayoutSubviews {
353 353 [super viewDidLayoutSubviews];
354 354  
355   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  355 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
356 356  
357 357 CGFloat top = 0;
358 358 CGFloat collectionViewHeight = 0;
359   - CGFloat naviBarHeight = self.navigationController.navigationBar.tz_height;
  359 + CGFloat naviBarHeight = self.navigationController.navigationBar.CNTZ_height;
360 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 362 if (self.navigationController.navigationBar.isTranslucent) {
363 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 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 371 _layout.itemSize = CGSizeMake(itemWH, itemWH);
372 372 _layout.minimumInteritemSpacing = itemMargin;
373 373 _layout.minimumLineSpacing = itemMargin;
... ... @@ -379,35 +379,35 @@ static CGFloat itemMargin = 5;
379 379  
380 380 CGFloat toolBarTop = 0;
381 381 if (!self.navigationController.navigationBar.isHidden) {
382   - toolBarTop = self.view.tz_height - toolBarHeight;
  382 + toolBarTop = self.view.CNTZ_height - toolBarHeight;
383 383 } else {
384 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 391 previewWidth = 0.0;
392 392 }
393 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 397 _originalPhotoButton.frame = CGRectMake(CGRectGetMaxX(_previewButton.frame), 0, fullImageWidth + 56, 50);
398 398 _originalPhotoLabel.frame = CGRectMake(fullImageWidth + 46, 0, 80, 50);
399 399 }
400 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 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 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 424  
425 425 - (void)previewButtonClick {
426 426 //根据进入方式不同判断
427   - TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init];
  427 + CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
428 428 photoPreviewVc.enterType = PhotoPreviewEnterTypeSelected;
429 429 [self pushPhotoPrevireViewController:photoPreviewVc needCheckSelectedModels:YES];
430 430 }
... ... @@ -442,15 +442,15 @@ static CGFloat itemMargin = 5;
442 442 #pragma mark - TODO: done 完成
443 443 - (void)doneButtonClick {
444 444 NSLog(@"-----相册完成选择----");
445   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  445 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
446 446 #pragma mark - 筛选
447 447 /*** 筛选 ***/
448 448 __block BOOL isBad = NO;
449 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 454 NSURL *url = [obj.asset movieURL];
455 455 if (!url) {
456 456 isBad = YES;
... ... @@ -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 465 UIImage *photo = [obj.asset getPhoto];
466 466 if (!photo) {
... ... @@ -473,7 +473,7 @@ static CGFloat itemMargin = 5;
473 473  
474 474 if (isBad) {
475 475 NSString *imgShowStr = [NSString stringWithFormat:@"选择中内容已损坏,已从选中删除"];
476   - [tzImagePickerVc showAlertWithTitle:imgShowStr];
  476 + [CNTZImagePickerVc showAlertWithTitle:imgShowStr];
477 477 [weakSelf checkSelectedModels];
478 478 [weakSelf refreshBottomToolBarStatus];
479 479 [weakSelf.collectionView reloadData];
... ... @@ -492,17 +492,24 @@ static CGFloat itemMargin = 5;
492 492 }
493 493  
494 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 498 return;
499 499 }
500 500  
501 501  
502 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 513 dispatch_async(dispatch_get_global_queue(0, 0), ^{
507 514 NSMutableArray *selectedModels = [NSMutableArray array];
508 515 NSMutableArray *assets = [NSMutableArray array];
... ... @@ -510,15 +517,15 @@ static CGFloat itemMargin = 5;
510 517 NSMutableArray *infoArr = [NSMutableArray array];
511 518  
512 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 523 [assets addObject:model.asset];
517 524 }
518 525  
519 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 530 [selectedModels addObject:@1];
524 531 [photos addObject:@1];
... ... @@ -529,16 +536,16 @@ static CGFloat itemMargin = 5;
529 536  
530 537 __block BOOL havenotShowAlert = YES;
531 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 543 dispatch_sync(queue, ^{
537 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 550 [selectedModels replaceObjectAtIndex:i withObject:model];
544 551 }
... ... @@ -549,11 +556,11 @@ static CGFloat itemMargin = 5;
549 556 dispatch_sync(queue, ^{
550 557  
551 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 560 if (isDegraded) return;
554 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 565 [photos replaceObjectAtIndex:i withObject:photo];
559 566 }
... ... @@ -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 582 dispatch_async(dispatch_get_main_queue(), ^{
576   - [tzImagePickerVc hideProgressHUD];
577   - [tzImagePickerVc hideAlertView:alertView];
  583 + [CNTZImagePickerVc hideProgressHUD];
  584 + [CNTZImagePickerVc hideAlertView:alertView];
578 585 });
579 586 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
580 587 return;
... ... @@ -582,8 +589,8 @@ static CGFloat itemMargin = 5;
582 589  
583 590 if (havenotShowAlert) {
584 591 dispatch_async(dispatch_get_main_queue(), ^{
585   - [tzImagePickerVc hideProgressHUD];
586   - [tzImagePickerVc hideAlertView:alertView];
  592 + [CNTZImagePickerVc hideProgressHUD];
  593 + [CNTZImagePickerVc hideAlertView:alertView];
587 594 });
588 595 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
589 596 }
... ... @@ -591,9 +598,9 @@ static CGFloat itemMargin = 5;
591 598 // 如果图片正在从iCloud同步中,提醒用户
592 599 if (progress < 1 && havenotShowAlert && !alertView) {
593 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 604 havenotShowAlert = NO;
598 605  
599 606 if (self->_isClickDone) {
... ... @@ -615,9 +622,9 @@ static CGFloat itemMargin = 5;
615 622  
616 623  
617 624 /*** 当只有返回Asset 和 没选择时走 ***/
618   - if (tzImagePickerVc.selectedModels.count <= 0 || tzImagePickerVc.onlyReturnAsset) {
  625 + if (CNTZImagePickerVc.selectedModels.count <= 0 || CNTZImagePickerVc.onlyReturnAsset) {
619 626 dispatch_async(dispatch_get_main_queue(), ^{
620   - [tzImagePickerVc hideProgressHUD];
  627 + [CNTZImagePickerVc hideProgressHUD];
621 628 });
622 629  
623 630 [weakSelf didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
... ... @@ -633,15 +640,15 @@ static CGFloat itemMargin = 5;
633 640 // NSMutableArray *assets = [NSMutableArray array];
634 641 // NSMutableArray *photos;
635 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 646 // [assets addObject:model.asset];
640 647 // }
641 648 // } else { // fetch image
642 649 // photos = [NSMutableArray array];
643 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 653 // [selectedModels addObject:@1];
647 654 // [photos addObject:@1];
... ... @@ -651,14 +658,14 @@ static CGFloat itemMargin = 5;
651 658 // }
652 659 //
653 660 // __block BOOL havenotShowAlert = YES;
654   -// [TZImageManager manager].shouldFixOrientation = YES;
  661 +// [CNTZImageManager manager].shouldFixOrientation = YES;
655 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 669 // model.exportURL = [self getURLWithModel:model];
663 670 // }
664 671 // [selectedModels replaceObjectAtIndex:i withObject:model];
... ... @@ -666,11 +673,11 @@ static CGFloat itemMargin = 5;
666 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 677 // if (isDegraded) return;
671 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 682 // [photos replaceObjectAtIndex:i withObject:photo];
676 683 // }
... ... @@ -682,14 +689,14 @@ static CGFloat itemMargin = 5;
682 689 // for (id item in photos) { if ([item isKindOfClass:[NSNumber class]]) return; }
683 690 //
684 691 // if (havenotShowAlert) {
685   -// [tzImagePickerVc hideAlertView:alertView];
  692 +// [CNTZImagePickerVc hideAlertView:alertView];
686 693 // [self didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
687 694 // }
688 695 // } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
689 696 // // 如果图片正在从iCloud同步中,提醒用户
690 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 700 // havenotShowAlert = NO;
694 701 // return;
695 702 // }
... ... @@ -699,28 +706,21 @@ static CGFloat itemMargin = 5;
699 706 // } networkAccessAllowed:YES];
700 707 // }
701 708 // }
702   -// if (tzImagePickerVc.selectedModels.count <= 0 || tzImagePickerVc.onlyReturnAsset) {
  709 +// if (CNTZImagePickerVc.selectedModels.count <= 0 || CNTZImagePickerVc.onlyReturnAsset) {
703 710 // [self didGetAllPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
704 711 // }
705 712 }
706 713  
707 714 /// 导出视频URL
708   -- (NSURL *)getURLWithModel:(TZAssetModel *)model{
  715 +- (NSURL *)getURLWithModel:(CNTZAssetModel *)model outputPath:(NSString *)outputPath{
709 716  
710 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 722 [CNLiveUploadManager zipNewVideoWithAsset:model.asset outputPath:outputPath limitType:AppPhototLimitTypeChat progressCount:^(float progress) {
723   -
  723 + NSLog(@"progress == %f",progress);
724 724 } success:^(NSURL *url) {
725 725 returnURL = url;
726 726 } failure:^{
... ... @@ -758,10 +758,10 @@ static CGFloat itemMargin = 5;
758 758 //}
759 759  
760 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 765 [self.navigationController dismissViewControllerAnimated:YES completion:^{
766 766 [self callDelegateMethodWithPhotos:photos assets:assets selectedModels:selectedModels infoArr:infoArr];
767 767 }];
... ... @@ -772,34 +772,34 @@ static CGFloat itemMargin = 5;
772 772  
773 773 ///lxg:更改
774 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 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 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 815  
816 816 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
817 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 823 cell.imageView.contentMode = UIViewContentModeCenter;
824 824 CGFloat rgb = 223 / 255.0;
825 825 cell.imageView.backgroundColor = [UIColor colorWithRed:rgb green:rgb blue:rgb alpha:1.0];
... ... @@ -829,30 +829,30 @@ static CGFloat itemMargin = 5;
829 829 return cell;
830 830 }
831 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 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 841 model = _models[indexPath.item];
842 842 } else {
843 843 model = _models[indexPath.item - 1];
844 844 }
845   - cell.allowPickingGif = tzImagePickerVc.allowPickingGif;
  845 + cell.allowPickingGif = CNTZImagePickerVc.allowPickingGif;
846 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 856 cell.cannotSelectLayerButton.hidden = NO;
857 857 } else {
858 858 cell.cannotSelectLayerButton.hidden = YES;
... ... @@ -867,31 +867,31 @@ static CGFloat itemMargin = 5;
867 867 __strong typeof(weakLayer) strongLayer = weakLayer;
868 868  
869 869 if (!strongCell.model.isExport) {///lxg:裂图
870   - [tzImagePickerVc showAlertWithTitle:@"图有损坏不可选"];
  870 + [CNTZImagePickerVc showAlertWithTitle:@"图有损坏不可选"];
871 871  
872 872 return;
873 873 }
874 874  
875   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)strongSelf.navigationController;
  875 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)strongSelf.navigationController;
876 876 // 1. cancel select / 取消选择
877 877 if (isSelected) {
878 878 strongCell.selectPhotoButton.selected = NO;
879 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 884 break;
885 885 }
886 886 }
887 887 [strongSelf refreshBottomToolBarStatus];
888   - if (tzImagePickerVc.showSelectedIndex || tzImagePickerVc.showPhotoCannotSelectLayer) {
  888 + if (CNTZImagePickerVc.showSelectedIndex || CNTZImagePickerVc.showPhotoCannotSelectLayer) {
889 889 [strongSelf setUseCachedImageAndReloadData];
890 890 }
891   - [UIView showOscillatoryAnimationWithLayer:strongLayer type:TZOscillatoryAnimationToSmaller];
  891 + [UIView showOscillatoryAnimationWithLayer:strongLayer type:CNTZOscillatoryAnimationToSmaller];
892 892 } else {
893 893 #pragma mark - 处理iCloud视频
894   - if (weakCell.model.type == TZAssetModelMediaTypeVideo) {
  894 + if (weakCell.model.type == CNTZAssetModelMediaTypeVideo) {
895 895  
896 896 if (weakCell.model.isCheckICloudType) {//检查完成
897 897 if (weakCell.model.isICloudType) {//源是iCloud
... ... @@ -928,7 +928,7 @@ static CGFloat itemMargin = 5;
928 928  
929 929 }];
930 930  
931   - [tzImagePickerVc showAlertWithTitle:@"请进入视频详情加载iCloud视频"];
  931 + [CNTZImagePickerVc showAlertWithTitle:@"请进入视频详情加载iCloud视频"];
932 932 return;
933 933  
934 934 }else {//已下载
... ... @@ -940,14 +940,14 @@ static CGFloat itemMargin = 5;
940 940  
941 941  
942 942 }else {
943   - [tzImagePickerVc showAlertWithTitle:@"请进入视频详情查看iCloud视频"];
  943 + [CNTZImagePickerVc showAlertWithTitle:@"请进入视频详情查看iCloud视频"];
944 944 return;
945 945 }
946 946  
947 947 }
948 948  
949 949 // 2. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制
950   - if (tzImagePickerVc.selectedModels.count < tzImagePickerVc.maxImagesCount) {
  950 + if (CNTZImagePickerVc.selectedModels.count < CNTZImagePickerVc.maxImagesCount) {
951 951 ///lxg禁止选中限制时长视频
952 952 NSTimeInterval duration = 0.0;
953 953 if ([model.asset isKindOfClass:[PHAsset class]]) {
... ... @@ -956,11 +956,11 @@ static CGFloat itemMargin = 5;
956 956 }else if ([model.asset isKindOfClass:[ALAsset class]]){
957 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 964 NSString *timeStr = [NSString string];
965 965 if (minutes == 0) {
966 966 timeStr = [NSString stringWithFormat:@"不能选择超过%li秒视频",(long)seconds];
... ... @@ -969,30 +969,30 @@ static CGFloat itemMargin = 5;
969 969 }else{
970 970 timeStr = [NSString stringWithFormat:@"不能选择超过%li分%li秒视频",(long)minutes,(long)seconds];
971 971 }
972   - [tzImagePickerVc showAlertWithTitle:timeStr];
  972 + [CNTZImagePickerVc showAlertWithTitle:timeStr];
973 973  
974 974 return;
975 975 }
976 976  
977 977  
978   - if (tzImagePickerVc.maxImagesCount == 1 && !tzImagePickerVc.allowPreview) {
  978 + if (CNTZImagePickerVc.maxImagesCount == 1 && !CNTZImagePickerVc.allowPreview) {
979 979 model.isSelected = YES;
980   - [tzImagePickerVc addSelectedModel:model];
  980 + [CNTZImagePickerVc addSelectedModel:model];
981 981 [strongSelf doneButtonClick];
982 982 return;
983 983 }
984 984 strongCell.selectPhotoButton.selected = YES;
985 985 model.isSelected = YES;
986   - if (tzImagePickerVc.showSelectedIndex || tzImagePickerVc.showPhotoCannotSelectLayer) {
  986 + if (CNTZImagePickerVc.showSelectedIndex || CNTZImagePickerVc.showPhotoCannotSelectLayer) {
987 987 model.needOscillatoryAnimation = YES;
988 988 [strongSelf setUseCachedImageAndReloadData];
989 989 }
990   - [tzImagePickerVc addSelectedModel:model];
  990 + [CNTZImagePickerVc addSelectedModel:model];
991 991 [strongSelf refreshBottomToolBarStatus];
992   - [UIView showOscillatoryAnimationWithLayer:strongLayer type:TZOscillatoryAnimationToSmaller];
  992 + [UIView showOscillatoryAnimationWithLayer:strongLayer type:CNTZOscillatoryAnimationToSmaller];
993 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 1002 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
1003 1003  
1004 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 1008 [self takePhoto]; return;
1009 1009 }
1010 1010  
1011 1011 //lxg:损坏
1012   - TZAssetModel *assetModel = _models[indexPath.row];
  1012 + CNTZAssetModel *assetModel = _models[indexPath.row];
1013 1013 if (assetModel) {
1014 1014 if (!assetModel.isExport) {///lxg:裂图
1015   - [tzImagePickerVc showAlertWithTitle:@"图有损坏不可选"];
  1015 + [CNTZImagePickerVc showAlertWithTitle:@"图有损坏不可选"];
1016 1016  
1017 1017 return;
1018 1018 }
... ... @@ -1020,44 +1020,44 @@ static CGFloat itemMargin = 5;
1020 1020  
1021 1021 // preview phote or video / 预览照片或视频
1022 1022 NSInteger index = indexPath.item;
1023   - if (!tzImagePickerVc.sortAscendingByModificationDate && _showTakePhotoBtn) {
  1023 + if (!CNTZImagePickerVc.sortAscendingByModificationDate && _showTakePhotoBtn) {
1024 1024 index = indexPath.item - 1;
1025 1025 }
1026   -// TZAssetModel *model = _models[index];
  1026 +// CNTZAssetModel *model = _models[index];
1027 1027  
1028 1028 #pragma mark - 聊天里面进入和朋友圈中进入LXG
1029 1029  
1030   - TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init];
  1030 + CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
1031 1031 photoPreviewVc.enterType = PhotoPreviewEnterTypeNormal;
1032 1032 photoPreviewVc.currentIndex = index;
1033 1033 photoPreviewVc.models = _models;
1034   - photoPreviewVc.isSelectOriginalPhoto = tzImagePickerVc.isSelectOriginalPhoto;
  1034 + photoPreviewVc.isSelectOriginalPhoto = CNTZImagePickerVc.isSelectOriginalPhoto;
1035 1035 [self pushPhotoPrevireViewController:photoPreviewVc];
1036 1036  
1037 1037  
1038 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 1043 // } else {
1044   -// TZVideoPlayerController *videoPlayerVc = [[TZVideoPlayerController alloc] init];
  1044 +// CNTZVideoPlayerController *videoPlayerVc = [[CNTZVideoPlayerController alloc] init];
1045 1045 // videoPlayerVc.model = model;
1046 1046 // videoPlayerVc.isOther = NO;//相册内部进入(LXG)
1047 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 1053 // } else {
1054   -// TZGifPhotoPreviewController *gifPreviewVc = [[TZGifPhotoPreviewController alloc] init];
  1054 +// CNTZGifPhotoPreviewController *gifPreviewVc = [[CNTZGifPhotoPreviewController alloc] init];
1055 1055 // gifPreviewVc.model = model;
1056 1056 // [self.navigationController pushViewController:gifPreviewVc animated:YES];
1057 1057 // }
1058 1058 // } else {
1059 1059 //#pragma mark - 当可以混选
1060   -// TZPhotoPreviewController *photoPreviewVc = [[TZPhotoPreviewController alloc] init];
  1060 +// CNTZPhotoPreviewController *photoPreviewVc = [[CNTZPhotoPreviewController alloc] init];
1061 1061 // photoPreviewVc.currentIndex = index;
1062 1062 // photoPreviewVc.models = _models;
1063 1063 // [self pushPhotoPrevireViewController:photoPreviewVc];
... ... @@ -1087,17 +1087,17 @@ static CGFloat itemMargin = 5;
1087 1087 AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
1088 1088 if ((authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied) && iOS7Later) {
1089 1089  
1090   - NSDictionary *infoDict = [TZCommonTools tz_getInfoDictionary];
  1090 + NSDictionary *infoDict = [CNTZCommonTools CNTZ_getInfoDictionary];
1091 1091 // 无权限 做一个友好的提示
1092 1092 NSString *appName = [infoDict valueForKey:@"CFBundleDisplayName"];
1093 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 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 1098 [alert show];
1099 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 1101 [alert show];
1102 1102 }
1103 1103 } else if (authStatus == AVAuthorizationStatusNotDetermined) {
... ... @@ -1121,10 +1121,10 @@ static CGFloat itemMargin = 5;
1121 1121 // 调用相机
1122 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 1126 __weak typeof(self) weakSelf = self;
1127   - [[TZLocationManager manager] startLocationWithSuccessBlock:^(NSArray<CLLocation *> *locations) {
  1127 + [[CNTZLocationManager manager] startLocationWithSuccessBlock:^(NSArray<CLLocation *> *locations) {
1128 1128 __strong typeof(weakSelf) strongSelf = weakSelf;
1129 1129 strongSelf.location = [locations firstObject];
1130 1130 } failureBlock:^(NSError *error) {
... ... @@ -1137,19 +1137,19 @@ static CGFloat itemMargin = 5;
1137 1137 if ([UIImagePickerController isSourceTypeAvailable: sourceType]) {
1138 1138 self.imagePickerVc.sourceType = sourceType;
1139 1139 NSMutableArray *mediaTypes = [NSMutableArray array];
1140   - if (tzImagePickerVc.allowTakePicture) {
  1140 + if (CNTZImagePickerVc.allowTakePicture) {
1141 1141 [mediaTypes addObject:(NSString *)kUTTypeImage];
1142 1142 }
1143   - if (tzImagePickerVc.allowTakeVideo) {
  1143 + if (CNTZImagePickerVc.allowTakeVideo) {
1144 1144 [mediaTypes addObject:(NSString *)kUTTypeMovie];
1145   - self.imagePickerVc.videoMaximumDuration = tzImagePickerVc.videoMaximumDuration;
  1145 + self.imagePickerVc.videoMaximumDuration = CNTZImagePickerVc.videoMaximumDuration;
1146 1146 }
1147 1147 self.imagePickerVc.mediaTypes= mediaTypes;
1148 1148 if (iOS8Later) {
1149 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 1154 [self presentViewController:_imagePickerVc animated:YES completion:nil];
1155 1155 } else {
... ... @@ -1158,31 +1158,31 @@ static CGFloat itemMargin = 5;
1158 1158 }
1159 1159  
1160 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 1169 #pragma mark - 添加: 选择图片个数显示(LXG)
1170 1170 _numberImageView.hidden = YES;
1171 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 1175 _originalPhotoButton.selected = (_isSelectOriginalPhoto && _originalPhotoButton.enabled);
1176 1176 _originalPhotoLabel.hidden = YES;///lxg添加
1177 1177 // _originalPhotoLabel.hidden = (!_originalPhotoButton.isSelected);///lxg注释
1178 1178 if (_isSelectOriginalPhoto) [self getSelectedPhotoBytes];
1179 1179 }
1180 1180  
1181   -- (void)pushPhotoPrevireViewController:(TZPhotoPreviewController *)photoPreviewVc {
  1181 +- (void)pushPhotoPrevireViewController:(CNTZPhotoPreviewController *)photoPreviewVc {
1182 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 1186 __weak typeof(self) weakSelf = self;
1187 1187 photoPreviewVc.isSelectOriginalPhoto = _isSelectOriginalPhoto;
1188 1188 [photoPreviewVc setBackButtonClickBlock:^(BOOL isSelectOriginalPhoto) {
... ... @@ -1210,21 +1210,21 @@ static CGFloat itemMargin = 5;
1210 1210  
1211 1211 - (void)getSelectedPhotoBytes {
1212 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 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 1218 self->_originalPhotoLabel.text = [NSString stringWithFormat:@"(%@)",totalBytes];
1219 1219 self->_originalPhotoLabel.hidden = YES;///lxg添加
1220 1220 }];
1221 1221 }
1222 1222  
1223 1223 - (void)scrollCollectionViewToBottom {
1224   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  1224 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
1225 1225 if (_shouldScrollToBottom && _models.count > 0) {
1226 1226 NSInteger item = 0;
1227   - if (tzImagePickerVc.sortAscendingByModificationDate) {
  1227 + if (CNTZImagePickerVc.sortAscendingByModificationDate) {
1228 1228 item = _models.count - 1;
1229 1229 if (_showTakePhotoBtn) {
1230 1230 item += 1;
... ... @@ -1244,41 +1244,41 @@ static CGFloat itemMargin = 5;
1244 1244 - (void)checkSelectedModels {
1245 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 1253 NSURL *url = [obj.asset movieURL];
1254 1254 if (!url) {
1255   - [tzImagePickerVc removeSelectedModel:obj];
  1255 + [CNTZImagePickerVc removeSelectedModel:obj];
1256 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 1265 UIImage *photo = [obj.asset getPhoto];
1266 1266 if (!photo) {
1267   - [tzImagePickerVc removeSelectedModel:obj];
  1267 + [CNTZImagePickerVc removeSelectedModel:obj];
1268 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 1277 [selectedAssets addObject:model.asset];
1278 1278 }
1279   - for (TZAssetModel *model in _models) {
  1279 + for (CNTZAssetModel *model in _models) {
1280 1280 model.isSelected = NO;
1281   - if ([[TZImageManager manager] isAssetsArray:selectedAssets containAsset:model.asset]) {
  1281 + if ([[CNTZImageManager manager] isAssetsArray:selectedAssets containAsset:model.asset]) {
1282 1282 model.isSelected = YES;
1283 1283 }
1284 1284 }
... ... @@ -1301,11 +1301,11 @@ static CGFloat itemMargin = 5;
1301 1301 [picker dismissViewControllerAnimated:YES completion:nil];
1302 1302 NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
1303 1303 if ([type isEqualToString:@"public.image"]) {
1304   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  1304 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
1305 1305 [imagePickerVc showProgressHUD];
1306 1306 UIImage *photo = [info objectForKey:UIImagePickerControllerOriginalImage];
1307 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 1309 if (!error) {
1310 1310 [self reloadPhotoArrayWithMediaType:type];
1311 1311 }
... ... @@ -1313,11 +1313,11 @@ static CGFloat itemMargin = 5;
1313 1313 self.location = nil;
1314 1314 }
1315 1315 } else if ([type isEqualToString:@"public.movie"]) {
1316   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  1316 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
1317 1317 [imagePickerVc showProgressHUD];
1318 1318 NSURL *videoUrl = [info objectForKey:UIImagePickerControllerMediaURL];
1319 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 1321 if (!error) {
1322 1322 [self reloadPhotoArrayWithMediaType:type];
1323 1323 }
... ... @@ -1328,14 +1328,14 @@ static CGFloat itemMargin = 5;
1328 1328 }
1329 1329  
1330 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 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 1339 assetModel = [models lastObject];
1340 1340 [self->_models addObject:assetModel];
1341 1341 } else {
... ... @@ -1343,10 +1343,10 @@ static CGFloat itemMargin = 5;
1343 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 1350 photoPreviewVc.currentIndex = self->_models.count - 1;
1351 1351 } else {
1352 1352 photoPreviewVc.currentIndex = 0;
... ... @@ -1354,18 +1354,18 @@ static CGFloat itemMargin = 5;
1354 1354 photoPreviewVc.models = self->_models;
1355 1355 [self pushPhotoPrevireViewController:photoPreviewVc];
1356 1356 } else {
1357   - [tzImagePickerVc addSelectedModel:assetModel];
  1357 + [CNTZImagePickerVc addSelectedModel:assetModel];
1358 1358 [self doneButtonClick];
1359 1359 }
1360 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 1366 } else {
1367 1367 assetModel.isSelected = YES;
1368   - [tzImagePickerVc addSelectedModel:assetModel];
  1368 + [CNTZImagePickerVc addSelectedModel:assetModel];
1369 1369 [self refreshBottomToolBarStatus];
1370 1370 }
1371 1371 }
... ... @@ -1384,13 +1384,13 @@ static CGFloat itemMargin = 5;
1384 1384  
1385 1385 - (void)dealloc {
1386 1386 // NSLog(@"%@ dealloc",NSStringFromClass(self.class));
1387   - NSLog(@"相册_相册_TZPhotoPickerController_dealloc");
  1387 + NSLog(@"相册_相册_CNTZPhotoPickerController_dealloc");
1388 1388 }
1389 1389  
1390 1390 #pragma mark - Asset Caching
1391 1391  
1392 1392 - (void)resetCachedAssets {
1393   - [[TZImageManager manager].cachingImageManager stopCachingImagesForAllAssets];
  1393 + [[CNTZImageManager manager].cachingImageManager stopCachingImagesForAllAssets];
1394 1394 self.previousPreheatRect = CGRectZero;
1395 1395 }
1396 1396  
... ... @@ -1425,11 +1425,11 @@ static CGFloat itemMargin = 5;
1425 1425 NSArray *assetsToStopCaching = [self assetsAtIndexPaths:removedIndexPaths];
1426 1426  
1427 1427 // Update the assets the PHCachingImageManager is caching.
1428   - [[TZImageManager manager].cachingImageManager startCachingImagesForAssets:assetsToStartCaching
  1428 + [[CNTZImageManager manager].cachingImageManager startCachingImagesForAssets:assetsToStartCaching
1429 1429 targetSize:AssetGridThumbnailSize
1430 1430 contentMode:PHImageContentModeAspectFill
1431 1431 options:nil];
1432   - [[TZImageManager manager].cachingImageManager stopCachingImagesForAssets:assetsToStopCaching
  1432 + [[CNTZImageManager manager].cachingImageManager stopCachingImagesForAssets:assetsToStopCaching
1433 1433 targetSize:AssetGridThumbnailSize
1434 1434 contentMode:PHImageContentModeAspectFill
1435 1435 options:nil];
... ... @@ -1477,7 +1477,7 @@ static CGFloat itemMargin = 5;
1477 1477 NSMutableArray *assets = [NSMutableArray arrayWithCapacity:indexPaths.count];
1478 1478 for (NSIndexPath *indexPath in indexPaths) {
1479 1479 if (indexPath.item < _models.count) {
1480   - TZAssetModel *model = _models[indexPath.item];
  1480 + CNTZAssetModel *model = _models[indexPath.item];
1481 1481 [assets addObject:model.asset];
1482 1482 }
1483 1483 }
... ... @@ -1501,7 +1501,7 @@ static CGFloat itemMargin = 5;
1501 1501  
1502 1502  
1503 1503  
1504   -@implementation TZCollectionView
  1504 +@implementation CNTZCollectionView
1505 1505  
1506 1506 - (BOOL)touchesShouldCancelInContentView:(UIView *)view {
1507 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
... ... @@ -8,21 +8,21 @@
8 8  
9 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 14 @property (nonatomic, copy) void (^singleTapGestureBlock)(void);
15 15 - (void)configSubviews;
16 16 - (void)photoPreviewCollectionViewDidScroll;
17 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 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 27 @property (nonatomic, assign) BOOL allowCrop;
28 28 @property (nonatomic, assign) CGRect cropRect;
... ... @@ -32,16 +32,16 @@
32 32 @end
33 33  
34 34  
35   -@interface TZPhotoPreviewView : UIView
  35 +@interface CNTZPhotoPreviewView : UIView
36 36 @property (nonatomic, strong) UIImageView *imageView;
37 37 @property (nonatomic, strong) UIScrollView *scrollView;
38 38 @property (nonatomic, strong) UIView *imageContainerView;
39   -@property (nonatomic, strong) TZProgressView *progressView;
  39 +@property (nonatomic, strong) CNTZProgressView *progressView;
40 40  
41 41 @property (nonatomic, assign) BOOL allowCrop;
42 42 @property (nonatomic, assign) CGRect cropRect;
43 43  
44   -@property (nonatomic, strong) TZAssetModel *model;
  44 +@property (nonatomic, strong) CNTZAssetModel *model;
45 45 @property (nonatomic, strong) id asset;
46 46 @property (nonatomic, copy) void (^singleTapGestureBlock)(void);
47 47 @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress);
... ... @@ -53,19 +53,19 @@
53 53  
54 54  
55 55 @class AVPlayer, AVPlayerLayer;
56   -@interface TZVideoPreviewCell : TZAssetPreviewCell
  56 +@interface CNTZVideoPreviewCell : CNTZAssetPreviewCell
57 57 @property (strong, nonatomic) AVPlayer *player;
58 58 @property (strong, nonatomic) AVPlayerLayer *playerLayer;
59 59 @property (strong, nonatomic) UIButton *playButton;
60 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 65 - (void)pausePlayerAndShowNaviBar;
66 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 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 5 // Created by 谭真 on 15/12/24.
6 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 15 #import <MediaPlayer/MediaPlayer.h>
16   -#import "TZImagePickerController.h"
  16 +#import "CNTZImagePickerController.h"
17 17  
18 18 #pragma mark - TODO: 2019.11.12 需要其他库依赖
19 19 //#import "CNAudioOrVideoMananger.h"
20 20 //#import "CNLiveSoundManager.h"
21 21 ////////////////////////
22   -@implementation TZAssetPreviewCell
  22 +@implementation CNTZAssetPreviewCell
23 23  
24 24 - (instancetype)initWithFrame:(CGRect)frame {
25 25 self = [super initWithFrame:frame];
... ... @@ -54,10 +54,10 @@
54 54 @end
55 55  
56 56  
57   -@implementation TZPhotoPreviewCell
  57 +@implementation CNTZPhotoPreviewCell
58 58  
59 59 - (void)configSubviews {
60   - self.previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero];
  60 + self.previewView = [[CNTZPhotoPreviewView alloc] initWithFrame:CGRectZero];
61 61 __weak typeof(self) weakSelf = self;
62 62 [self.previewView setSingleTapGestureBlock:^{
63 63 __strong typeof(weakSelf) strongSelf = weakSelf;
... ... @@ -74,7 +74,7 @@
74 74 [self addSubview:self.previewView];
75 75 }
76 76  
77   -- (void)setModel:(TZAssetModel *)model {
  77 +- (void)setModel:(CNTZAssetModel *)model {
78 78 [super setModel:model];
79 79 _previewView.asset = model.asset;
80 80 }
... ... @@ -101,11 +101,11 @@
101 101 @end
102 102  
103 103  
104   -@interface TZPhotoPreviewView ()<UIScrollViewDelegate>
  104 +@interface CNTZPhotoPreviewView ()<UIScrollViewDelegate>
105 105 @property (assign, nonatomic) BOOL isRequestingGIF;
106 106 @end
107 107  
108   -@implementation TZPhotoPreviewView
  108 +@implementation CNTZPhotoPreviewView
109 109  
110 110 - (instancetype)initWithFrame:(CGRect)frame {
111 111 self = [super initWithFrame:frame];
... ... @@ -152,18 +152,18 @@
152 152 }
153 153  
154 154 - (void)configProgressView {
155   - _progressView = [[TZProgressView alloc] init];
  155 + _progressView = [[CNTZProgressView alloc] init];
156 156 _progressView.hidden = YES;
157 157 [self addSubview:_progressView];
158 158 }
159 159  
160   -- (void)setModel:(TZAssetModel *)model {
  160 +- (void)setModel:(CNTZAssetModel *)model {
161 161 _model = model;
162 162 self.isRequestingGIF = NO;
163 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 167 self.imageView.image = photo;
168 168 [self resizeSubviews];
169 169 if (self.isRequestingGIF) {
... ... @@ -171,7 +171,7 @@
171 171 }
172 172 // 再显示gif动图
173 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 175 progress = progress > 0.02 ? progress : 0.02;
176 176 dispatch_async(dispatch_get_main_queue(), ^{
177 177 self.progressView.progress = progress;
... ... @@ -182,13 +182,13 @@
182 182 }
183 183 });
184 184 #ifdef DEBUG
185   - NSLog(@"[TZImagePickerController] getOriginalPhotoDataWithAsset:%f error:%@", progress, error);
  185 + NSLog(@"[CNTZImagePickerController] getOriginalPhotoDataWithAsset:%f error:%@", progress, error);
186 186 #endif
187 187 } completion:^(NSData *data, NSDictionary *info, BOOL isDegraded) {
188 188 if (!isDegraded) {
189 189 self.isRequestingGIF = NO;
190 190 self.progressView.hidden = YES;
191   - self.imageView.image = [UIImage sd_tz_animatedGIFWithData:data];
  191 + self.imageView.image = [UIImage sd_CNTZ_animatedGIFWithData:data];
192 192 [self resizeSubviews];
193 193 }
194 194 }];
... ... @@ -204,7 +204,7 @@
204 204 }
205 205  
206 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 208 if (![asset isEqual:self->_asset]) return;
209 209 self.imageView.image = photo;
210 210 [self resizeSubviews];
... ... @@ -238,26 +238,26 @@
238 238 }
239 239  
240 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 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 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 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 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 261 _imageView.frame = _imageContainerView.bounds;
262 262  
263 263 [self refreshScrollViewContentSize];
... ... @@ -281,10 +281,10 @@
281 281 if (_allowCrop) {
282 282 // 1.7.2 如果允许裁剪,需要让图片的任意部分都能在裁剪框内,于是对_scrollView做了如下处理:
283 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 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 288 _scrollView.contentSize = CGSizeMake(newSizeW, newSizeH);
289 289 _scrollView.alwaysBounceVertical = YES;
290 290 // 2.让scrollView新增滑动区域(裁剪框左上角的图片部分)
... ... @@ -298,10 +298,10 @@
298 298  
299 299 - (void)layoutSubviews {
300 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 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 305 _progressView.frame = CGRectMake(progressX, progressY, progressWH, progressWH);
306 306  
307 307 [self recoverSubviews];
... ... @@ -349,15 +349,15 @@
349 349 #pragma mark - Private
350 350  
351 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 354 self.imageContainerView.center = CGPointMake(_scrollView.contentSize.width * 0.5 + offsetX, _scrollView.contentSize.height * 0.5 + offsetY);
355 355 }
356 356  
357 357 @end
358 358  
359 359  
360   -@implementation TZVideoPreviewCell
  360 +@implementation CNTZVideoPreviewCell
361 361  
362 362 - (void)dealloc
363 363 {
... ... @@ -400,14 +400,14 @@
400 400 [_progressView removeFromSuperview];
401 401 }
402 402  
403   - _progressView = [[TZProgressView alloc]init];
  403 + _progressView = [[CNTZProgressView alloc]init];
404 404 _progressView.hidden = YES;
405 405 [self addSubview:_progressView];
406 406  
407 407 }
408 408  
409 409  
410   -- (void)setModel:(TZAssetModel *)model {
  410 +- (void)setModel:(CNTZAssetModel *)model {
411 411 [super setModel:model];
412 412 [self configMoviePlayer];
413 413 }
... ... @@ -427,7 +427,7 @@
427 427 }
428 428  
429 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 431 NSLog(@"输出图片info = %@",info);
432 432 /** 获取图片 */
433 433 weakSelf.cover = photo;
... ... @@ -441,7 +441,7 @@
441 441  
442 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 446 dispatch_async(dispatch_get_main_queue(), ^{
447 447  
... ... @@ -540,7 +540,7 @@
540 540  
541 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 545 NSLog(@"输出视频info = %@",info);
546 546  
... ... @@ -654,8 +654,8 @@
654 654 - (void)layoutSubviews {
655 655 [super layoutSubviews];
656 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 661 - (void)photoPreviewCollectionViewDidScroll {
... ... @@ -723,14 +723,14 @@
723 723 @end
724 724  
725 725  
726   -@implementation TZGifPreviewCell
  726 +@implementation CNTZGifPreviewCell
727 727  
728 728 - (void)configSubviews {
729 729 [self configPreviewView];
730 730 }
731 731  
732 732 - (void)configPreviewView {
733   - _previewView = [[TZPhotoPreviewView alloc] initWithFrame:CGRectZero];
  733 + _previewView = [[CNTZPhotoPreviewView alloc] initWithFrame:CGRectZero];
734 734 __weak typeof(self) weakSelf = self;
735 735 [_previewView setSingleTapGestureBlock:^{
736 736 __strong typeof(weakSelf) strongSelf = weakSelf;
... ... @@ -739,7 +739,7 @@
739 739 [self addSubview:_previewView];
740 740 }
741 741  
742   -- (void)setModel:(TZAssetModel *)model {
  742 +- (void)setModel:(CNTZAssetModel *)model {
743 743 [super setModel:model];
744 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 5 // Created by 谭真 on 15/12/24.
6 6 // Copyright © 2015年 谭真. All rights reserved.
... ... @@ -13,7 +13,7 @@ typedef enum : NSUInteger {
13 13 PhotoPreviewEnterTypeSelected,
14 14 } PhotoPreviewEnterType;
15 15  
16   -@interface TZPhotoPreviewController : UIViewController
  16 +@interface CNTZPhotoPreviewController : UIViewController
17 17  
18 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 5 // Created by 谭真 on 15/12/24.
6 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 16 #import <AssetsLibrary/AssetsLibrary.h>///lxg
17 17 #import "CNEditVideoController.h"
18 18  
19 19 //#import "CNAudioOrVideoMananger.h"
20 20 //#import "CNLiveSoundManager.h"
21   -@interface TZPhotoPreviewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIScrollViewDelegate> {
  21 +@interface CNTZPhotoPreviewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UIScrollViewDelegate> {
22 22 UICollectionView *_collectionView;
23 23 UICollectionViewFlowLayout *_layout;
24 24 NSArray *_photosTemp;
... ... @@ -56,18 +56,18 @@
56 56 @property (strong, nonatomic) id alertView;
57 57 @end
58 58  
59   -@implementation TZPhotoPreviewController
  59 +@implementation CNTZPhotoPreviewController
60 60  
61 61 - (void)viewDidLoad {
62 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 65 if (!_didSetIsSelectOriginalPhoto) {
66   - _isSelectOriginalPhoto = _tzImagePickerVc.isSelectOriginalPhoto;
  66 + _isSelectOriginalPhoto = _CNTZImagePickerVc.isSelectOriginalPhoto;
67 67 }
68 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 72 [self configCollectionView];
73 73 [self configCustomNaviBar];
... ... @@ -97,18 +97,18 @@
97 97  
98 98 [self.navigationController setNavigationBarHidden:YES animated:YES];
99 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 101 [self refreshNaviBarAndBottomBarState];
102 102 }
103 103  
104 104 - (void)viewWillDisappear:(BOOL)animated {
105 105 [super viewWillDisappear:animated];
106 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 109 [UIApplication sharedApplication].statusBarHidden = NO;
110 110 }
111   - [TZImageManager manager].shouldFixOrientation = NO;
  111 + [CNTZImageManager manager].shouldFixOrientation = NO;
112 112  
113 113 [[NSNotificationCenter defaultCenter] postNotificationName:@"didViewLoadController" object:nil];
114 114 }
... ... @@ -118,7 +118,7 @@
118 118 }
119 119  
120 120 - (void)configCustomNaviBar {
121   - TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  121 + CNTZImagePickerController *CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
122 122  
123 123 _naviBar = [[UIView alloc] initWithFrame:CGRectZero];
124 124 _naviBar.backgroundColor = [UIColor colorWithRed:(34/255.0) green:(34/255.0) blue:(34/255.0) alpha:0.7];
... ... @@ -129,13 +129,13 @@
129 129 [_backButton addTarget:self action:@selector(backButtonClick) forControlEvents:UIControlEventTouchUpInside];
130 130  
131 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 134 _selectButton.imageView.clipsToBounds = YES;
135 135 _selectButton.imageEdgeInsets = UIEdgeInsetsMake(10, 0, 10, 0);
136 136 _selectButton.imageView.contentMode = UIViewContentModeScaleAspectFit;
137 137 [_selectButton addTarget:self action:@selector(select:) forControlEvents:UIControlEventTouchUpInside];
138   - _selectButton.hidden = !tzImagePickerVc.showSelectBtn;
  138 + _selectButton.hidden = !CNTZImagePickerVc.showSelectBtn;
139 139  
140 140 _indexLabel = [[UILabel alloc] init];
141 141 _indexLabel.font = [UIFont systemFontOfSize:14];
... ... @@ -177,19 +177,19 @@
177 177 static CGFloat rgb = 34 / 255.0;
178 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 182 _originalPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom];
183 183 _originalPhotoButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);
184 184 _originalPhotoButton.backgroundColor = [UIColor clearColor];
185 185 [_originalPhotoButton addTarget:self action:@selector(originalPhotoButtonClick) forControlEvents:UIControlEventTouchUpInside];
186 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 189 [_originalPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
190 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 194 _originalPhotoLabel = [[UILabel alloc] init];
195 195 _originalPhotoLabel.textAlignment = NSTextAlignmentLeft;
... ... @@ -202,26 +202,26 @@
202 202 _doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
203 203 _doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
204 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 209 _numberImageView.backgroundColor = [UIColor clearColor];
210 210 _numberImageView.clipsToBounds = YES;
211 211 _numberImageView.contentMode = UIViewContentModeScaleAspectFit;
212   - _numberImageView.hidden = _tzImagePickerVc.selectedModels.count <= 0;
  212 + _numberImageView.hidden = _CNTZImagePickerVc.selectedModels.count <= 0;
213 213  
214 214 _numberLabel = [[UILabel alloc] init];
215 215 _numberLabel.font = [UIFont systemFontOfSize:15];
216 216 _numberLabel.textColor = [UIColor whiteColor];
217 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 220 _numberLabel.backgroundColor = [UIColor clearColor];
221 221 #pragma mark - 添加: 选择图片个数显示(LXG)
222 222 _numberImageView.hidden = YES;
223 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 225 [_doneButton setTitle:titleStr forState:UIControlStateNormal];
226 226  
227 227 ///LXG 添加视频编辑
... ... @@ -235,8 +235,8 @@
235 235 _editTipButton.titleLabel.font = [UIFont systemFontOfSize:16];
236 236 [_editTipButton addTarget:self action:@selector(editVideoButtonClick) forControlEvents:UIControlEventTouchUpInside];
237 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 241 [_originalPhotoButton addSubview:_originalPhotoLabel];
242 242 [_toolBar addSubview:_doneButton];
... ... @@ -247,8 +247,8 @@
247 247 [_toolBar addSubview:_editTipButton];///LXG
248 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 263 _collectionView.scrollsToTop = NO;
264 264 _collectionView.showsHorizontalScrollIndicator = NO;
265 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 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 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 276 [_cropView removeFromSuperview];
277 277 [_cropBgView removeFromSuperview];
278 278  
... ... @@ -281,21 +281,21 @@
281 281 _cropBgView.frame = self.view.bounds;
282 282 _cropBgView.backgroundColor = [UIColor clearColor];
283 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 286 _cropView = [UIView new];
287 287 _cropView.userInteractionEnabled = NO;
288   - _cropView.frame = _tzImagePickerVc.cropRect;
  288 + _cropView.frame = _CNTZImagePickerVc.cropRect;
289 289 _cropView.backgroundColor = [UIColor clearColor];
290 290 _cropView.layer.borderColor = [UIColor whiteColor].CGColor;
291 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 294 _cropView.clipsToBounds = YES;
295 295 }
296 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 301 [self.view bringSubviewToFront:_naviBar];
... ... @@ -308,56 +308,56 @@
308 308  
309 309 - (void)viewDidLayoutSubviews {
310 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 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 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 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 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 328 _layout.minimumInteritemSpacing = 0;
329 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 331 [_collectionView setCollectionViewLayout:_layout];
332 332 if (_offsetItemCount > 0) {
333 333 CGFloat offsetX = _offsetItemCount * _layout.itemSize.width;
334 334 [_collectionView setContentOffset:CGPointMake(offsetX, 0)];
335 335 }
336   - if (_tzImagePickerVc.allowCrop) {
  336 + if (_CNTZImagePickerVc.allowCrop) {
337 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 345 _originalPhotoButton.frame = CGRectMake(0, 0, fullImageWidth + 56, 44);
346 346 _originalPhotoLabel.frame = CGRectMake(fullImageWidth + 42, 0, 80, 44);
347 347 }
348 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 351 _numberLabel.frame = _numberImageView.frame;
352 352 ///LXG
353 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 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 374 #pragma mark - Click Event
375 375  
376 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 379 ///LXG:加入当点击选择时 滑动到另一个页面 选中为当前页面判断是否可选
380 380 if (!selectButton.enabled) {
381 381 return;
... ... @@ -383,46 +383,46 @@
383 383  
384 384 if (!selectButton.isSelected) {
385 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 389 return;
390 390 // 2. if not over the maxImagesCount / 如果没有超过最大个数限制
391 391 } else {
392   - [_tzImagePickerVc addSelectedModel:model];
  392 + [_CNTZImagePickerVc addSelectedModel:model];
393 393 if (self.photos) {
394   - [_tzImagePickerVc.selectedAssets addObject:_assetsTemp[_currentIndex]];
  394 + [_CNTZImagePickerVc.selectedAssets addObject:_assetsTemp[_currentIndex]];
395 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 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 405 // 1.6.7版本更新:防止有多个一样的model,一次性被移除了
406   - NSArray *selectedModelsTmp = [NSArray arrayWithArray:_tzImagePickerVc.selectedModels];
  406 + NSArray *selectedModelsTmp = [NSArray arrayWithArray:_CNTZImagePickerVc.selectedModels];
407 407 for (NSInteger i = 0; i < selectedModelsTmp.count; i++) {
408   - TZAssetModel *model = selectedModelsTmp[i];
  408 + CNTZAssetModel *model = selectedModelsTmp[i];
409 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 412 break;
413 413 }
414 414 }
415 415 if (self.photos) {
416 416 // 1.6.7版本更新:防止有多个一样的asset,一次性被移除了
417   - NSArray *selectedAssetsTmp = [NSArray arrayWithArray:_tzImagePickerVc.selectedAssets];
  417 + NSArray *selectedAssetsTmp = [NSArray arrayWithArray:_CNTZImagePickerVc.selectedAssets];
418 418 for (NSInteger i = 0; i < selectedAssetsTmp.count; i++) {
419 419 id asset = selectedAssetsTmp[i];
420 420 if ([asset isEqual:_assetsTemp[_currentIndex]]) {
421   - [_tzImagePickerVc.selectedAssets removeObjectAtIndex:i];
  421 + [_CNTZImagePickerVc.selectedAssets removeObjectAtIndex:i];
422 422 break;
423 423 }
424 424 }
425   - // [_tzImagePickerVc.selectedAssets removeObject:_assetsTemp[_currentIndex]];
  425 + // [_CNTZImagePickerVc.selectedAssets removeObject:_assetsTemp[_currentIndex]];
426 426 [self.photos removeObject:_photosTemp[_currentIndex]];
427 427 }
428 428 break;
... ... @@ -433,17 +433,17 @@
433 433 model.isSelected = !selectButton.isSelected;
434 434 [self refreshNaviBarAndBottomBarState];
435 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 442 - (void)backButtonClick {
443 443 if (self.navigationController.childViewControllers.count < 2) {
444 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 447 if (nav.imagePickerControllerDidCancelHandle) {
448 448 nav.imagePickerControllerDidCancelHandle();
449 449 }
... ... @@ -458,27 +458,27 @@
458 458  
459 459 #pragma mark - TODO: 导出done
460 460 - (void)doneButtonClick {
461   - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  461 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
462 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 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 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 480 if (self.doneButtonClickBlockCropMode) {
481   - TZAssetModel *model = _models[_currentIndex];
  481 + CNTZAssetModel *model = _models[_currentIndex];
482 482 self.doneButtonClickBlockCropMode(cropedImage,model.asset);
483 483  
484 484 }
... ... @@ -486,7 +486,7 @@
486 486 self.doneButtonClickBlock(_isSelectOriginalPhoto);
487 487 }
488 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 506 // [[CNLiveSoundManager sharedInstance] audioOrVideoCalling];
507 507  
508 508 NSLog(@"开始编辑视频了");
509   - TZImagePickerController *_tzImagePickerVc = (TZImagePickerController *)self.navigationController;
  509 + CNTZImagePickerController *_CNTZImagePickerVc = (CNTZImagePickerController *)self.navigationController;
510 510 CNEditVideoController *editVideoVC = [[CNEditVideoController alloc]init];
511   - TZAssetModel *model = _models[_currentIndex];
  511 + CNTZAssetModel *model = _models[_currentIndex];
512 512 editVideoVC.model = model;
513 513 editVideoVC.models = _models;
514 514 editVideoVC.currentIndex = _currentIndex;
... ... @@ -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 527 - (void)originalPhotoButtonClick {
... ... @@ -532,8 +532,8 @@
532 532 [self showPhotoBytes];
533 533 if (!_selectButton.isSelected) {
534 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 537 [self select:_selectButton];
538 538 }
539 539 }
... ... @@ -557,9 +557,9 @@
557 557  
558 558 - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
559 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 564 if (currentIndex < _models.count && _currentIndex != currentIndex) {
565 565 _currentIndex = currentIndex;
... ... @@ -576,42 +576,42 @@
576 576 }
577 577  
578 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 583 __weak typeof(self) weakSelf = self;
584 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 590 NSLog(@"输出是否icloud的状态");
591 591 dispatch_async(dispatch_get_main_queue(), ^{
592 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 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 603 __weak typeof(_collectionView) weakCollectionView = _collectionView;
604 604 __weak typeof(photoPreviewCell) weakCell = photoPreviewCell;
605 605 [photoPreviewCell setImageProgressUpdateBlock:^(double progress) {
606 606 __strong typeof(weakSelf) strongSelf = weakSelf;
607   - __strong typeof(weakTzImagePickerVc) strongTzImagePickerVc = weakTzImagePickerVc;
  607 + __strong typeof(weakCNTZImagePickerVc) strongCNTZImagePickerVc = weakCNTZImagePickerVc;
608 608 __strong typeof(weakCollectionView) strongCollectionView = weakCollectionView;
609 609 __strong typeof(weakCell) strongCell = weakCell;
610 610 strongSelf.progress = progress;
611 611 if (progress >= 1) {
612 612 if (strongSelf.isSelectOriginalPhoto) [strongSelf showPhotoBytes];
613 613 if (strongSelf.alertView && [strongCollectionView.visibleCells containsObject:strongCell]) {
614   - [strongTzImagePickerVc hideAlertView:strongSelf.alertView];
  614 + [strongCNTZImagePickerVc hideAlertView:strongSelf.alertView];
615 615 strongSelf.alertView = nil;
616 616 [strongSelf doneButtonClick];
617 617 }
... ... @@ -628,16 +628,16 @@
628 628 }
629 629  
630 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 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 645  
646 646 - (void)dealloc {
647 647 // NSLog(@"%@ dealloc",NSStringFromClass(self.class));
648   - NSLog(@"相册_详情_TZPhotoPreviewController_dealloc");
  648 + NSLog(@"相册_详情_CNTZPhotoPreviewController_dealloc");
649 649  
650 650  
651 651 }
652 652  
653 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 658 _selectButton.selected = model.isSelected;
659 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 663 _indexLabel.text = index;
664 664 _indexLabel.hidden = NO;
665 665 } else {
666 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 672 #pragma mark - 添加: 选择图片个数显示(LXG)
673 673 //隐藏图标
674 674 _numberLabel.hidden = YES;
675 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 677 [_doneButton setTitle:titleStr forState:UIControlStateNormal];
678 678 _originalPhotoButton.selected = _isSelectOriginalPhoto;
679 679 _originalPhotoLabel.hidden = !_originalPhotoButton.isSelected;
... ... @@ -682,7 +682,7 @@
682 682 // If is previewing video, hide original photo button
683 683 // 如果正在预览的是视频,隐藏原图按钮
684 684 if (!_isHideNaviBar) {
685   - if (model.type == TZAssetModelMediaTypeVideo) {
  685 + if (model.type == CNTZAssetModelMediaTypeVideo) {
686 686 _originalPhotoButton.hidden = YES;
687 687 _originalPhotoLabel.hidden = YES;
688 688 } else {
... ... @@ -692,9 +692,9 @@
692 692 }
693 693  
694 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 698 _numberLabel.hidden = YES;
699 699 _numberImageView.hidden = YES;
700 700 _selectButton.hidden = YES;
... ... @@ -705,16 +705,16 @@
705 705  
706 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 719 _selectButton.hidden = YES;
720 720 _selectButton.enabled = NO;
... ... @@ -749,10 +749,10 @@
749 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 756 NSString *timeStr = [NSString string];
757 757 if (minutes == 0) {
758 758 timeStr = [NSString stringWithFormat:@"不能分享超过%li秒的视频",(long)seconds];
... ... @@ -770,7 +770,7 @@
770 770 _tipBar.hidden = NO;
771 771 _tipContentLabel.text = timeStr;
772 772 _doneButton.hidden = NO;
773   - if (_tzImagePickerVc.selectedModels.count > 0) {
  773 + if (_CNTZImagePickerVc.selectedModels.count > 0) {
774 774 _doneButton.enabled = YES;
775 775 }else{
776 776 _doneButton.enabled = NO;
... ... @@ -778,10 +778,10 @@
778 778 _editTipButton.hidden = YES;
779 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 785 NSString *timeStr = [NSString string];
786 786 if (minutes == 0) {
787 787 timeStr = [NSString stringWithFormat:@"朋友圈只能分享%li秒限制的视频,需进行编辑",(long)seconds];
... ... @@ -835,10 +835,10 @@
835 835 }else if([model.asset isKindOfClass:[ALAsset class]]) {
836 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 842 NSString *timeStr = [NSString string];
843 843 if (minutes == 0) {
844 844 timeStr = [NSString stringWithFormat:@"不能选择超过%li秒视频",(long)seconds];
... ... @@ -855,7 +855,7 @@
855 855 _tipBar.hidden = NO;
856 856 _tipContentLabel.text = timeStr;
857 857 _doneButton.hidden = NO;
858   - if (_tzImagePickerVc.selectedModels.count > 0) {
  858 + if (_CNTZImagePickerVc.selectedModels.count > 0) {
859 859 _doneButton.enabled = YES;
860 860 }else{
861 861 _doneButton.enabled = NO;
... ... @@ -864,7 +864,7 @@
864 864 _editTipLable.hidden = YES;
865 865  
866 866  
867   - }else{///多选状态下**允许**图片和视频混选(lxg) - 不是视频 || 视频<= _tzImagePickerVc.maxVideoDuration 最大时长限制
  867 + }else{///多选状态下**允许**图片和视频混选(lxg) - 不是视频 || 视频<= _CNTZImagePickerVc.maxVideoDuration 最大时长限制
868 868  
869 869 _selectButton.hidden = NO;
870 870 _selectButton.enabled = YES;
... ... @@ -881,7 +881,7 @@
881 881  
882 882 ///LXG:添加预览按钮进来判断
883 883 if (self.enterType == PhotoPreviewEnterTypeSelected) {
884   - if (_tzImagePickerVc.selectedModels.count <= 0) {
  884 + if (_CNTZImagePickerVc.selectedModels.count <= 0) {
885 885 _doneButton.enabled = NO;
886 886 }else{
887 887 _doneButton.enabled = YES;
... ... @@ -891,7 +891,7 @@
891 891 }
892 892  
893 893 #pragma mark - ///iCloud加载视频
894   - if (model.type == TZAssetModelMediaTypeVideo) {
  894 + if (model.type == CNTZAssetModelMediaTypeVideo) {
895 895 ///iCloud加载视频
896 896 if (model.isCheckICloudType && model.isICloudType && !model.isVideoICloudDownLoad) {
897 897 _selectButton.hidden = YES;
... ... @@ -933,7 +933,7 @@
933 933 }
934 934  
935 935 - (void)showPhotoBytes {
936   - [[TZImageManager manager] getPhotosBytesWithArray:@[_models[_currentIndex]] completion:^(NSString *totalBytes) {
  936 + [[CNTZImageManager manager] getPhotosBytesWithArray:@[_models[_currentIndex]] completion:^(NSString *totalBytes) {
937 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 5 // Created by ttouch on 2016/12/6.
6 6 // Copyright © 2016年 谭真. All rights reserved.
... ... @@ -8,7 +8,7 @@
8 8  
9 9 #import <UIKit/UIKit.h>
10 10  
11   -@interface TZProgressView : UIView
  11 +@interface CNTZProgressView : UIView
12 12  
13 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 5 // Created by ttouch on 2016/12/6.
6 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 12 @property (nonatomic, strong) CAShapeLayer *progressLayer;
13 13 @end
14 14  
15   -@implementation TZProgressView
  15 +@implementation CNTZProgressView
16 16  
17 17 - (instancetype)init {
18 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 5 // Created by 谭真 on 16/1/5.
6 6 // Copyright © 2016年 谭真. All rights reserved.
... ... @@ -8,12 +8,12 @@
8 8  
9 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 17 ///其他进入和相册进入(lxg)
18 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 5 // Created by 谭真 on 16/1/5.
6 6 // Copyright © 2016年 谭真. All rights reserved.
7 7 //
8 8  
9   -#import "TZVideoPlayerController.h"
  9 +#import "CNTZVideoPlayerController.h"
10 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 16 #import <QMUIKit/QMUIKit.h>
17 17 #import <CNLiveBaseKit/CNLiveBaseKit.h>
18 18  
... ... @@ -20,7 +20,7 @@
20 20 //#import "CNAudioOrVideoMananger.h"
21 21 //#import "CNLiveSoundManager.h"
22 22 ////////////////////////////
23   -@interface TZVideoPlayerController () {
  23 +@interface CNTZVideoPlayerController () {
24 24 AVPlayer *_player;
25 25 AVPlayerLayer *_playerLayer;
26 26 UIButton *_playButton;
... ... @@ -41,16 +41,16 @@
41 41 #pragma clang diagnostic push
42 42 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
43 43  
44   -@implementation TZVideoPlayerController
  44 +@implementation CNTZVideoPlayerController
45 45  
46 46 - (void)viewDidLoad {
47 47 [super viewDidLoad];
48 48 ///LXG 注释
49 49 // self.needShowStatusBar = ![UIApplication sharedApplication].statusBarHidden;
50 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 55 [self configMoviePlayer];
56 56 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pausePlayerAndShowNaviBar) name:UIApplicationWillResignActiveNotification object:nil];
... ... @@ -81,11 +81,11 @@
81 81 ///LXG 导航栏显示
82 82 [UIApplication sharedApplication].statusBarStyle = _originStatusBarStyle;
83 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 86 [UIApplication sharedApplication].statusBarHidden = NO;
87 87 }
88   - [TZImageManager manager].shouldFixOrientation = NO;
  88 + [CNTZImageManager manager].shouldFixOrientation = NO;
89 89 }
90 90 ///LXG iOS7之后使用
91 91 - (BOOL)prefersStatusBarHidden {
... ... @@ -93,13 +93,13 @@
93 93 }
94 94  
95 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 97 if (!isDegraded && photo) {
98 98 self->_cover = photo;
99 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 103 dispatch_async(dispatch_get_main_queue(), ^{
104 104 self->_player = [AVPlayer playerWithPlayerItem:playerItem];
105 105 self->_playerLayer = [AVPlayerLayer playerLayerWithPlayer:self->_player];
... ... @@ -162,20 +162,20 @@
162 162 _doneButton.enabled = NO;
163 163 }
164 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 169 } else {
170   - [_doneButton setTitle:[NSBundle tz_localizedStringForKey:@"Done"] forState:UIControlStateNormal];
  170 + [_doneButton setTitle:[NSBundle CNTZ_localizedStringForKey:@"Done"] forState:UIControlStateNormal];
171 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 174 [_toolBar addSubview:_doneButton];
175 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 184 - (void)viewDidLayoutSubviews {
185 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 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 196 ///LXG NAV布局
197 197 if (_isOther) {
198 198 CGFloat statusBarHeightInterval = statusBarHeight - 20;
199 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 201 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44);
202 202 //完成按钮
203 203 _doneButton.titleLabel.font = [UIFont systemFontOfSize:13];
... ... @@ -218,13 +218,13 @@
218 218  
219 219 }else{
220 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 223 _backButton.frame = CGRectMake(10, 10 + statusBarHeightInterval, 44, 44);
224 224 }
225 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 266 }
267 267  
268 268 if (self.navigationController) {
269   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  269 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
270 270 if (imagePickerVc.autoDismiss) {
271 271 [self.navigationController dismissViewControllerAnimated:YES completion:^{
272 272 [self callDelegateMethod];
... ... @@ -282,7 +282,7 @@
282 282 }
283 283  
284 284 - (void)callDelegateMethod {
285   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  285 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
286 286 if ([imagePickerVc.pickerDelegate respondsToSelector:@selector(imagePickerController:didFinishPickingVideo:sourceAssets:)]) {
287 287 [imagePickerVc.pickerDelegate imagePickerController:imagePickerVc didFinishPickingVideo:_cover sourceAssets:_model.asset];
288 288 }
... ... @@ -298,7 +298,7 @@
298 298 self.videoFinishedAction(self.model, self.isOther);
299 299 }
300 300 if (self.navigationController) {
301   - TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
  301 + CNTZImagePickerController *imagePickerVc = (CNTZImagePickerController *)self.navigationController;
302 302 [imagePickerVc popViewControllerAnimated:YES];
303 303 } else {
304 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 5 // Created by 谭真 on 16/08/18.
6 6 // Copyright © 2016年 谭真. All rights reserved.
... ... @@ -8,12 +8,12 @@
8 8  
9 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 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 5 // Created by 谭真 on 15/2/24.
5 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 14 return self.frame.origin.x;
14 15 }
15 16  
16   -- (void)setTz_left:(CGFloat)x {
  17 +- (void)setCNTZ_left:(CGFloat)x {
17 18 CGRect frame = self.frame;
18 19 frame.origin.x = x;
19 20 self.frame = frame;
20 21 }
21 22  
22   -- (CGFloat)tz_top {
  23 +- (CGFloat)CNTZ_top {
23 24 return self.frame.origin.y;
24 25 }
25 26  
26   -- (void)setTz_top:(CGFloat)y {
  27 +- (void)setCNTZ_top:(CGFloat)y {
27 28 CGRect frame = self.frame;
28 29 frame.origin.y = y;
29 30 self.frame = frame;
30 31 }
31 32  
32   -- (CGFloat)tz_right {
  33 +- (CGFloat)CNTZ_right {
33 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 38 CGRect frame = self.frame;
38 39 frame.origin.x = right - frame.size.width;
39 40 self.frame = frame;
40 41 }
41 42  
42   -- (CGFloat)tz_bottom {
  43 +- (CGFloat)CNTZ_bottom {
43 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 48 CGRect frame = self.frame;
48 49 frame.origin.y = bottom - frame.size.height;
49 50 self.frame = frame;
50 51 }
51 52  
52   -- (CGFloat)tz_width {
  53 +- (CGFloat)CNTZ_width {
53 54 return self.frame.size.width;
54 55 }
55 56  
56   -- (void)setTz_width:(CGFloat)width {
  57 +- (void)setCNTZ_width:(CGFloat)width {
57 58 CGRect frame = self.frame;
58 59 frame.size.width = width;
59 60 self.frame = frame;
60 61 }
61 62  
62   -- (CGFloat)tz_height {
  63 +- (CGFloat)CNTZ_height {
63 64 return self.frame.size.height;
64 65 }
65 66  
66   -- (void)setTz_height:(CGFloat)height {
  67 +- (void)setCNTZ_height:(CGFloat)height {
67 68 CGRect frame = self.frame;
68 69 frame.size.height = height;
69 70 self.frame = frame;
70 71 }
71 72  
72   -- (CGFloat)tz_centerX {
  73 +- (CGFloat)CNTZ_centerX {
73 74 return self.center.x;
74 75 }
75 76  
76   -- (void)setTz_centerX:(CGFloat)centerX {
  77 +- (void)setCNTZ_centerX:(CGFloat)centerX {
77 78 self.center = CGPointMake(centerX, self.center.y);
78 79 }
79 80  
80   -- (CGFloat)tz_centerY {
  81 +- (CGFloat)CNTZ_centerY {
81 82 return self.center.y;
82 83 }
83 84  
84   -- (void)setTz_centerY:(CGFloat)centerY {
  85 +- (void)setCNTZ_centerY:(CGFloat)centerY {
85 86 self.center = CGPointMake(self.center.x, centerY);
86 87 }
87 88  
88   -- (CGPoint)tz_origin {
  89 +- (CGPoint)CNTZ_origin {
89 90 return self.frame.origin;
90 91 }
91 92  
92   -- (void)setTz_origin:(CGPoint)origin {
  93 +- (void)setCNTZ_origin:(CGPoint)origin {
93 94 CGRect frame = self.frame;
94 95 frame.origin = origin;
95 96 self.frame = frame;
96 97 }
97 98  
98   -- (CGSize)tz_size {
  99 +- (CGSize)CNTZ_size {
99 100 return self.frame.size;
100 101 }
101 102  
102   -- (void)setTz_size:(CGSize)size {
  103 +- (void)setCNTZ_size:(CGSize)size {
103 104 CGRect frame = self.frame;
104 105 frame.size = size;
105 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 113 [UIView animateWithDuration:0.15 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseInOut animations:^{
113 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 308 "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework",
309 309 "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework",
310 310 "${BUILT_PRODUCTS_DIR}/CNLiveBaseTools/CNLiveBaseTools.framework",
  311 + "${BUILT_PRODUCTS_DIR}/CNLiveBeeHive/CNLiveBeeHive.framework",
311 312 "${BUILT_PRODUCTS_DIR}/CNLiveBusinessTools/CNLiveBusinessTools.framework",
312 313 "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework",
313 314 "${BUILT_PRODUCTS_DIR}/CNLiveEnvironment/CNLiveEnvironment.framework",
... ... @@ -322,13 +323,22 @@
322 323 "${BUILT_PRODUCTS_DIR}/Qiniu/Qiniu.framework",
323 324 "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework",
324 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 336 name = "[CP] Embed Pods Frameworks";
328 337 outputPaths = (
329 338 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework",
330 339 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework",
331 340 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseTools.framework",
  341 + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBeeHive.framework",
332 342 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBusinessTools.framework",
333 343 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework",
334 344 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveEnvironment.framework",
... ... @@ -343,7 +353,15 @@
343 353 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Qiniu.framework",
344 354 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework",
345 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 366 runOnlyForDeploymentPostprocessing = 0;
349 367 shellPath = /bin/sh;
... ...
Example/CNLiveImagePickerController/CNLiveViewController.m
... ... @@ -10,7 +10,7 @@
10 10 #import "CNImagePickerManager.h"
11 11 #import <CNLiveUploadManager/CNLiveUploadManager.h>
12 12  
13   -@interface CNLiveViewController ()<TZImagePickerControllerDelegate>
  13 +@interface CNLiveViewController ()<CNTZImagePickerControllerDelegate>
14 14  
15 15 @end
16 16  
... ...