Skip to content

Commit 2a4caa8

Browse files
author
dino.tan
committed
avoid selectedAssets index change, release 3.8.7
1 parent 63f1301 commit 2a4caa8

File tree

6 files changed

+32
-27
lines changed

6 files changed

+32
-27
lines changed

README.md

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

99
## 重要提示1:提issue前,请先对照Demo、常见问题自查!Demo正常说明你可以升级下新版试试。
1010

11-
## 重要提示2:3.8.6版本修复了iOS18下无照片的问题
11+
## 重要提示2:3.8.7版本修复了iOS18下无照片的问题
1212
关于iOS14模拟器的问题
1313
PHAuthorizationStatusLimited授权模式下,iOS14模拟器有bug,未授权照片无法显示,真机正常,暂可忽略:https://github.com/banchichen/TZImagePickerController/issues/1347
1414

@@ -123,7 +123,7 @@ A:不要去拿PHImageFileURLKey,没用的,只有通过Photos框架才能
123123

124124
## 六. Release Notes 最近更新
125125

126-
**3.8.6 支持iOS18** [#1686](https://github.com/banchichen/TZImagePickerController/issues/1686)
126+
**3.8.7 支持iOS18** [#1686](https://github.com/banchichen/TZImagePickerController/issues/1686)
127127
**3.8.5 新增隐私清单文件** [#1675](https://github.com/banchichen/TZImagePickerController/pull/1675)
128128
**3.8.4 支持使用不带定位代码的版本** [#1606](https://github.com/banchichen/TZImagePickerController/pull/1606)
129129
3.8.1 iOS14下可添加访问更多照片,详见PR内的评论 [#1526](https://github.com/banchichen/TZImagePickerController/pull/1526)

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 = "3.8.6"
3+
s.version = "3.8.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 = "10.0"
10-
s.source = { :git => "https://github.com/banchichen/TZImagePickerController.git", :tag => "3.8.6" }
10+
s.source = { :git => "https://github.com/banchichen/TZImagePickerController.git", :tag => "3.8.7" }
1111
s.requires_arc = true
1212

1313
s.subspec 'Basic' do |b|

TZImagePickerController.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -862,8 +862,8 @@
862862
INFOPLIST_FILE = TZImagePickerController/Info.plist;
863863
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
864864
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
865-
MARKETING_VERSION = 3.8.6;
866-
PRODUCT_BUNDLE_IDENTIFIER = tanzhenios2024.TZImagePickerController.www;
865+
MARKETING_VERSION = 3.8.7;
866+
PRODUCT_BUNDLE_IDENTIFIER = tanzhenios2025.TZImagePickerController.www;
867867
PRODUCT_NAME = "$(TARGET_NAME)";
868868
PROVISIONING_PROFILE = "";
869869
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -887,7 +887,7 @@
887887
INFOPLIST_FILE = TZImagePickerController/Info.plist;
888888
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
889889
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
890-
MARKETING_VERSION = 3.8.6;
890+
MARKETING_VERSION = 3.8.7;
891891
PRODUCT_BUNDLE_IDENTIFIER = tanzhenios2022.TZImagePickerController.www;
892892
PRODUCT_NAME = "$(TARGET_NAME)";
893893
PROVISIONING_PROFILE = "";

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 3.8.6 - 2024.06.27
7+
// version 3.8.7 - 2024.08.14
88
// 更多信息,请前往项目的github地址:https://github.com/banchichen/TZImagePickerController
99

1010
/*

TZImagePickerController/TZImagePickerController/TZImagePickerController.m

Lines changed: 1 addition & 10 deletions
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 3.8.6 - 2024.06.27
7+
// version 3.8.7 - 2024.08.14
88
// 更多信息,请前往项目的github地址:https://github.com/banchichen/TZImagePickerController
99

1010
#import "TZImagePickerController.h"
@@ -680,15 +680,6 @@ - (void)removeSelectedModel:(TZAssetModel *)model {
680680
[_selectedAssetIds removeObject:model.asset.localIdentifier];
681681
}
682682

683-
- (void)setSelectedModels:(NSMutableArray<TZAssetModel *> *)selectedModels {
684-
_selectedModels = selectedModels;
685-
NSMutableArray *selectedAssetIds = [NSMutableArray array];
686-
for (TZAssetModel *model in selectedModels) {
687-
[selectedAssetIds addObject:model.asset.localIdentifier];
688-
}
689-
_selectedAssetIds = selectedAssetIds;
690-
}
691-
692683
- (UIImage *)createImageWithColor:(UIColor *)color size:(CGSize)size radius:(CGFloat)radius {
693684
if (!color) {
694685
color = self.iconThemeColor;

TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ - (void)initSubviews {
151151
[self configCollectionView];
152152
self->_collectionView.hidden = YES;
153153
[self configBottomToolBar];
154-
[self refreshBottomToolBarStatus];
155154
[self prepareScrollCollectionViewToBottom];
156155
});
157156
}
@@ -966,16 +965,12 @@ - (void)checkSelectedModels {
966965
[selectedAssets addObject:model.asset];
967966
}
968967
// 拿到了最新的models,在此刷新照片选中状态
969-
// 由于可能有照片权限变化,也需要刷新selectedModels https://github.com/banchichen/TZImagePickerController/pull/1658
970-
NSMutableArray *newSelectedModels = [NSMutableArray array];
971968
for (TZAssetModel *model in _models) {
972969
model.isSelected = NO;
973970
if ([selectedAssets containsObject:model.asset]) {
974971
model.isSelected = YES;
975-
[newSelectedModels addObject:model];
976972
}
977973
}
978-
tzImagePickerVc.selectedModels = newSelectedModels;
979974
}
980975

981976
/// 选中/取消选中某张照片
@@ -1115,10 +1110,14 @@ - (void)photoLibraryDidChange:(PHChange *)changeInstance {
11151110
PHFetchResultChangeDetails *changeDetail = [changeInstance changeDetailsForFetchResult:self.model.result];
11161111
if (changeDetail == nil) return;
11171112
if ([[TZImageManager manager] isPHAuthorizationStatusLimited]) {
1118-
self.model.result = changeDetail.fetchResultAfterChanges;
1119-
self.model.count = changeDetail.fetchResultAfterChanges.count;
1120-
[self fetchAssetModels];
1121-
} else if (changeDetail.hasIncrementalChanges == NO) {
1113+
NSArray *changedObjects = [changeDetail changedObjects];
1114+
changeDetail = [PHFetchResultChangeDetails changeDetailsFromFetchResult:self.model.result toFetchResult:changeDetail.fetchResultAfterChanges changedObjects:changedObjects];
1115+
if (changeDetail && changeDetail.removedObjects.count) {
1116+
[self handleRemovedAssets:changeDetail.removedObjects];
1117+
}
1118+
}
1119+
1120+
if (changeDetail.hasIncrementalChanges == NO) {
11221121
[self.model refreshFetchResult];
11231122
[self fetchAssetModels];
11241123
} else {
@@ -1134,6 +1133,21 @@ - (void)photoLibraryDidChange:(PHChange *)changeInstance {
11341133
});
11351134
}
11361135

1136+
- (void)handleRemovedAssets:(NSArray<PHAsset *> *)removedObjects {
1137+
TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
1138+
for (PHAsset *asset in removedObjects) {
1139+
Boolean isSelected = [tzImagePickerVc.selectedAssetIds containsObject:asset.localIdentifier];
1140+
if (!isSelected) continue;
1141+
NSArray *selectedModels = [NSArray arrayWithArray:tzImagePickerVc.selectedModels];
1142+
for (TZAssetModel *model_item in selectedModels) {
1143+
if ([asset.localIdentifier isEqualToString:model_item.asset.localIdentifier]) {
1144+
[tzImagePickerVc removeSelectedModel:model_item];
1145+
}
1146+
}
1147+
[self refreshBottomToolBarStatus];
1148+
}
1149+
}
1150+
11371151
#pragma mark - Asset Caching
11381152

11391153
- (void)resetCachedAssets {

0 commit comments

Comments
 (0)