Commit b669edf9 authored by yuzheng.tz's avatar yuzheng.tz

新增onlyReturnAsset属性,为YES时选择器不获取大图,只返回asset出去

parent 8bd70eb5
...@@ -102,6 +102,10 @@ ...@@ -102,6 +102,10 @@
/// 默认为YES,如果设置为NO, 选择器将不会自己dismiss /// 默认为YES,如果设置为NO, 选择器将不会自己dismiss
@property(nonatomic, assign) BOOL autoDismiss; @property(nonatomic, assign) BOOL autoDismiss;
/// Default is YES, if set NO, in the delegate method the photos and infos will be nil, only assets hava value.
/// 默认为NO,如果设置为YES,代理方法里photos和infos会是nil,只返回assets
@property (assign, nonatomic) BOOL onlyReturnAsset;
/// The photos user have selected /// The photos user have selected
/// 用户选中过的图片数组 /// 用户选中过的图片数组
@property (nonatomic, strong) NSMutableArray *selectedAssets; @property (nonatomic, strong) NSMutableArray *selectedAssets;
......
...@@ -352,43 +352,52 @@ static CGFloat itemMargin = 5; ...@@ -352,43 +352,52 @@ static CGFloat itemMargin = 5;
} }
[tzImagePickerVc showProgressHUD]; [tzImagePickerVc showProgressHUD];
NSMutableArray *photos = [NSMutableArray array];
NSMutableArray *assets = [NSMutableArray array]; NSMutableArray *assets = [NSMutableArray array];
NSMutableArray *infoArr = [NSMutableArray array]; NSMutableArray *photos;
for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) { [photos addObject:@1];[assets addObject:@1];[infoArr addObject:@1]; } NSMutableArray *infoArr;
if (tzImagePickerVc.onlyReturnAsset) { // not fetch image
__block BOOL havenotShowAlert = YES; for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) {
[TZImageManager manager].shouldFixOrientation = YES; TZAssetModel *model = tzImagePickerVc.selectedModels[i];
__block id alertView; [assets addObject:model.asset];
for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) { }
TZAssetModel *model = tzImagePickerVc.selectedModels[i]; } else { // fetch image
[[TZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) { photos = [NSMutableArray array];
if (isDegraded) return; infoArr = [NSMutableArray array];
if (photo) { for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) { [photos addObject:@1];[assets addObject:@1];[infoArr addObject:@1]; }
photo = [self scaleImage:photo toSize:CGSizeMake(tzImagePickerVc.photoWidth, (int)(tzImagePickerVc.photoWidth * photo.size.height / photo.size.width))];
[photos replaceObjectAtIndex:i withObject:photo]; __block BOOL havenotShowAlert = YES;
} [TZImageManager manager].shouldFixOrientation = YES;
if (info) [infoArr replaceObjectAtIndex:i withObject:info]; __block id alertView;
[assets replaceObjectAtIndex:i withObject:model.asset]; for (NSInteger i = 0; i < tzImagePickerVc.selectedModels.count; i++) {
TZAssetModel *model = tzImagePickerVc.selectedModels[i];
for (id item in photos) { if ([item isKindOfClass:[NSNumber class]]) return; } [[TZImageManager manager] getPhotoWithAsset:model.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
if (isDegraded) return;
if (havenotShowAlert) { if (photo) {
[tzImagePickerVc hideAlertView:alertView]; photo = [self scaleImage:photo toSize:CGSizeMake(tzImagePickerVc.photoWidth, (int)(tzImagePickerVc.photoWidth * photo.size.height / photo.size.width))];
[self didGetAllPhotos:photos assets:assets infoArr:infoArr]; [photos replaceObjectAtIndex:i withObject:photo];
} }
} progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) { if (info) [infoArr replaceObjectAtIndex:i withObject:info];
// 如果图片正在从iCloud同步中,提醒用户 [assets replaceObjectAtIndex:i withObject:model.asset];
if (progress < 1 && havenotShowAlert && !alertView) {
[tzImagePickerVc hideProgressHUD]; for (id item in photos) { if ([item isKindOfClass:[NSNumber class]]) return; }
alertView = [tzImagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Synchronizing photos from iCloud"]];
havenotShowAlert = NO; if (havenotShowAlert) {
return; [tzImagePickerVc hideAlertView:alertView];
} [self didGetAllPhotos:photos assets:assets infoArr:infoArr];
if (progress >= 1) { }
havenotShowAlert = YES; } progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
} // 如果图片正在从iCloud同步中,提醒用户
} networkAccessAllowed:YES]; if (progress < 1 && havenotShowAlert && !alertView) {
[tzImagePickerVc hideProgressHUD];
alertView = [tzImagePickerVc showAlertWithTitle:[NSBundle tz_localizedStringForKey:@"Synchronizing photos from iCloud"]];
havenotShowAlert = NO;
return;
}
if (progress >= 1) {
havenotShowAlert = YES;
}
} networkAccessAllowed:YES];
}
} }
if (tzImagePickerVc.selectedModels.count <= 0) { if (tzImagePickerVc.selectedModels.count <= 0) {
[self didGetAllPhotos:photos assets:assets infoArr:infoArr]; [self didGetAllPhotos:photos assets:assets infoArr:infoArr];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment