Skip to content

Commit ce534e1

Browse files
committed
优化gif图播放的体验,加入iCloud同步进度条;发布2.1.7版本
1 parent 38e315e commit ce534e1

File tree

10 files changed

+36
-15
lines changed

10 files changed

+36
-15
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
## 重要提示1:提issue前请先搜索,先从已有issue里找找线索。如果发现bug,请先和Demo对照自查下,如果Demo也有bug,请再提issue。Demo正常你那不正常的,提issue时请贴上你的初始化代码,注明必要的复现步骤。这样能避免多余的沟通,帮助你更快获取答案。
1010

11-
## 重要提示2:1.9.0版本后移除了"prefs:root="的调用,这个API已经被列为私有API,请大家尽快升级。目前最新版本2.1.6
11+
## 重要提示2:1.9.0版本后移除了"prefs:root="的调用,这个API已经被列为私有API,请大家尽快升级。目前最新版本2.1.7
1212

1313
关于升级iOS10和Xcdoe8的提示:
1414
在Xcode8环境下将项目运行在iOS10的设备/模拟器中,访问相册和相机需要额外配置info.plist文件。分别是Privacy - Photo Library Usage Description和Privacy - Camera Usage Description字段,详见Demo中info.plist中的设置。
@@ -97,6 +97,7 @@ A:1.8.4版本已支持
9797
A:考虑下,优先级低
9898

9999
最近更新
100+
2.1.7 优化gif图播放的体验,加入iCloud同步进度条;新增notScaleImage属性,设置为YES时内部不去缩放图片
100101
2.1.6 新增allowCameraLocation属性,默认为YES,置为NO时不会在照相/摄像时定位,修复一个序号紊乱的bug
101102
2.1.5 修复开启showSelectedIndex后照片列表页iCloud图片进度条紊乱的bug
102103
2.1.4 新增多个页面和组件的样式自定义block,允许自定义绝大多数UI样式

TZImagePickerController.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
Pod::Spec.new do |s|
22
s.name = "TZImagePickerController"
3-
s.version = "2.1.6"
3+
s.version = "2.1.7"
44
s.summary = "A clone of UIImagePickerController, support picking multiple photos、original photo and video"
55
s.homepage = "https://github.com/banchichen/TZImagePickerController"
66
s.license = "MIT"
77
s.author = { "banchichen" => "tanzhenios@foxmail.com" }
88
s.platform = :ios
99
s.ios.deployment_target = "6.0"
10-
s.source = { :git => "https://github.com/banchichen/TZImagePickerController.git", :tag => "2.1.6" }
10+
s.source = { :git => "https://github.com/banchichen/TZImagePickerController.git", :tag => "2.1.7" }
1111
s.requires_arc = true
1212
s.resources = "TZImagePickerController/TZImagePickerController/*.{png,bundle}"
1313
s.source_files = "TZImagePickerController/TZImagePickerController/*.{h,m}"

TZImagePickerController.xcodeproj/project.pbxproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
90CE84AE1C3A89EF003D0779 /* TZImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 90CE84AD1C3A89EF003D0779 /* TZImageManager.m */; };
3636
90CE84B71C3BABB6003D0779 /* TZVideoPlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90CE84B61C3BABB6003D0779 /* TZVideoPlayerController.m */; };
3737
90EBF5D61C2E298000CB9BCC /* UIView+Layout.m in Sources */ = {isa = PBXBuildFile; fileRef = 90EBF5D51C2E298000CB9BCC /* UIView+Layout.m */; };
38-
9F763A491FA071D000D9E526 /* TZImagePickerController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F763A421FA071CF00D9E526 /* TZImagePickerController.framework */; };
3938
9F763A4A1FA071D000D9E526 /* TZImagePickerController.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F763A421FA071CF00D9E526 /* TZImagePickerController.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
4039
9F763A501FA072E500D9E526 /* TZImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 900EEFF71C2BBF9500EA709B /* TZImagePickerController.m */; };
4140
9F763A521FA072E500D9E526 /* TZPhotoPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 900EEFFD1C2BD58B00EA709B /* TZPhotoPickerController.m */; };
@@ -171,7 +170,6 @@
171170
buildActionMask = 2147483647;
172171
files = (
173172
903996951F447609005E77C2 /* AssetsLibrary.framework in Frameworks */,
174-
9F763A491FA071D000D9E526 /* TZImagePickerController.framework in Frameworks */,
175173
903996931F447604005E77C2 /* Photos.framework in Frameworks */,
176174
);
177175
runOnlyForDeploymentPostprocessing = 0;

TZImagePickerController/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>APPL</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.1.6</string>
18+
<string>2.1.7</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

TZImagePickerController/TZImagePickerController/TZImageManager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
- (void)getOriginalPhotoWithAsset:(id)asset newCompletion:(void (^)(UIImage *photo,NSDictionary *info,BOOL isDegraded))completion;
7474
// 该方法中,completion只会走一次
7575
- (void)getOriginalPhotoDataWithAsset:(id)asset completion:(void (^)(NSData *data,NSDictionary *info,BOOL isDegraded))completion;
76+
- (void)getOriginalPhotoDataWithAsset:(id)asset progressHandler:(void (^)(double progress, NSError *error, BOOL *stop, NSDictionary *info))progressHandler completion:(void (^)(NSData *data,NSDictionary *info,BOOL isDegraded))completion;
7677

7778
/// Save photo 保存照片
7879
- (void)savePhotoWithImage:(UIImage *)image completion:(void (^)(NSError *error))completion;

TZImagePickerController/TZImagePickerController/TZImageManager.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,9 @@ - (void)getPhotosBytesWithArray:(NSArray *)photos completion:(void (^)(NSString
420420
PHImageRequestOptions *options = [[PHImageRequestOptions alloc] init];
421421
options.resizeMode = PHImageRequestOptionsResizeModeFast;
422422
options.networkAccessAllowed = YES;
423+
if ([[model.asset valueForKey:@"filename"] hasSuffix:@"GIF"]) {
424+
options.version = PHImageRequestOptionsVersionOriginal;
425+
}
423426
[[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
424427
if (model.type != TZAssetModelMediaTypeVideo) dataLength += imageData.length;
425428
assetCount ++;
@@ -645,13 +648,18 @@ - (void)getOriginalPhotoWithAsset:(id)asset newCompletion:(void (^)(UIImage *pho
645648
}
646649

647650
- (void)getOriginalPhotoDataWithAsset:(id)asset completion:(void (^)(NSData *data,NSDictionary *info,BOOL isDegraded))completion {
651+
[self getOriginalPhotoDataWithAsset:asset progressHandler:nil completion:completion];
652+
}
653+
654+
- (void)getOriginalPhotoDataWithAsset:(id)asset progressHandler:(void (^)(double progress, NSError *error, BOOL *stop, NSDictionary *info))progressHandler completion:(void (^)(NSData *data,NSDictionary *info,BOOL isDegraded))completion {
648655
if ([asset isKindOfClass:[PHAsset class]]) {
649656
PHImageRequestOptions *option = [[PHImageRequestOptions alloc] init];
650657
option.networkAccessAllowed = YES;
651658
if ([[asset valueForKey:@"filename"] hasSuffix:@"GIF"]) {
652659
// if version isn't PHImageRequestOptionsVersionOriginal, the gif may cann't play
653660
option.version = PHImageRequestOptionsVersionOriginal;
654661
}
662+
[option setProgressHandler:progressHandler];
655663
option.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat;
656664
[[PHImageManager defaultManager] requestImageDataForAsset:asset options:option resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
657665
BOOL downloadFinined = (![[info objectForKey:PHImageCancelledKey] boolValue] && ![info objectForKey:PHImageErrorKey]);

TZImagePickerController/TZImagePickerController/TZImagePickerController.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55
// Created by 谭真 on 15/12/24.
66
// Copyright © 2015年 谭真. All rights reserved.
7-
// version 2.1.6 - 2018.06.12
7+
// version 2.1.7 - 2018.07.05
88
// 更多信息,请前往项目的github地址:https://github.com/banchichen/TZImagePickerController
99

1010
/*

TZImagePickerController/TZImagePickerController/TZImagePickerController.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55
// Created by 谭真 on 15/12/24.
66
// Copyright © 2015年 谭真. All rights reserved.
7-
// version 2.1.6 - 2018.06.12
7+
// version 2.1.7 - 2018.07.05
88
// 更多信息,请前往项目的github地址:https://github.com/banchichen/TZImagePickerController
99

1010
#import "TZImagePickerController.h"

TZImagePickerController/TZImagePickerController/TZPhotoPreviewCell.m

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,25 @@ - (void)setModel:(TZAssetModel *)model {
156156
self.imageView.image = photo;
157157
[self resizeSubviews];
158158
// 再显示gif动图
159-
[[TZImageManager manager] getOriginalPhotoDataWithAsset:model.asset completion:^(NSData *data, NSDictionary *info, BOOL isDegraded) {
160-
if (!isDegraded) {
161-
self.imageView.image = [UIImage sd_tz_animatedGIFWithData:data];
162-
[self resizeSubviews];
163-
}
164-
}];
159+
if (!isDegraded) {
160+
[[TZImageManager manager] getOriginalPhotoDataWithAsset:model.asset progressHandler:^(double progress, NSError *error, BOOL *stop, NSDictionary *info) {
161+
progress = progress > 0.02 ? progress : 0.02;
162+
dispatch_async(dispatch_get_main_queue(), ^{
163+
self.progressView.progress = progress;
164+
if (progress >= 1) {
165+
self.progressView.hidden = YES;
166+
} else {
167+
self.progressView.hidden = NO;
168+
}
169+
});
170+
} completion:^(NSData *data, NSDictionary *info, BOOL isDegraded) {
171+
if (!isDegraded) {
172+
self.progressView.hidden = YES;
173+
self.imageView.image = [UIImage sd_tz_animatedGIFWithData:data];
174+
[self resizeSubviews];
175+
}
176+
}];
177+
}
165178
} progressHandler:nil networkAccessAllowed:NO];
166179
} else {
167180
self.asset = model.asset;

TZImagePickerControllerFramework/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.1.6</string>
18+
<string>2.1.7</string>
1919
<key>CFBundleVersion</key>
2020
<string>$(CURRENT_PROJECT_VERSION)</string>
2121
<key>NSPrincipalClass</key>

0 commit comments

Comments
 (0)