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