Closed xnxy closed 9 months ago
目前在 checkSelectedModels
方法中判断图片是否在列表中,如果不在进行移除。
- (void)checkSelectedModels {
TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
NSArray *selectedModels = tzImagePickerVc.selectedModels;
NSMutableSet *selectedAssets = [NSMutableSet setWithCapacity:selectedModels.count];
for (TZAssetModel *model in selectedModels) {
[selectedAssets addObject:model.asset];
}
for (TZAssetModel *model in _models) {
model.isSelected = NO;
if ([selectedAssets containsObject:model.asset]) {
model.isSelected = YES;
}
}
// fix: 受限的权限访问 更改选中的图片
NSMutableArray *removeArray = [NSMutableArray array];
for (TZAssetModel *model in selectedModels) {
__block BOOL isHave = NO;
[_models enumerateObjectsUsingBlock:^(TZAssetModel *obj, NSUInteger idx, BOOL * _Nonnull stop) {
if([model.asset.localIdentifier isEqualToString:obj.asset.localIdentifier]){
isHave = YES;
*stop = YES;
}
}];
if(!isHave){
[removeArray addObject:model];
}
}
for (TZAssetModel *model in removeArray) {
[tzImagePickerVc removeSelectedModel:model];
}
}
同时又加了个updateBottomToolBar
方法,来更新下方完成按钮的状态
- (void)initSubviews {
dispatch_async(dispatch_get_main_queue(), ^{
TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
[tzImagePickerVc hideProgressHUD];
[self checkSelectedModels];
[self configCollectionView];
self->_collectionView.hidden = YES;
[self configBottomToolBar];
[self updateBottomToolBar]; //fix: 受限的权限访问 更改选中的图片
[self prepareScrollCollectionViewToBottom];
});
}
//fix 受限的权限访问 更改选中的图片
- (void)updateBottomToolBar {
TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController;
if (!tzImagePickerVc.showSelectBtn) return;
_doneButton.enabled = tzImagePickerVc.selectedModels.count || tzImagePickerVc.alwaysEnableDoneBtn;
_numberImageView.hidden = tzImagePickerVc.selectedModels.count <= 0;
_numberLabel.text = [NSString stringWithFormat:@"%zd",tzImagePickerVc.selectedModels.count];
_numberLabel.hidden = tzImagePickerVc.selectedModels.count <= 0;
}
https://github.com/banchichen/TZImagePickerController/pull/1657
已提交了PR,大佬有时间看下是否有问题。
已合并,发布了新版本3.8.4
更新:这个导致了序号错乱的问题:https://github.com/banchichen/TZImagePickerController/issues/1671
序号错乱问题已经修复,该issue里状态更新问题,使用了新方案实现:https://github.com/banchichen/TZImagePickerController/commit/2a4caa806c4f9356df1bdc8233b42350bb41c652#diff-e0526319e03bba22c65b63d870193b138512ff0ac9047d894e1602ad957e4f47R1136
已发布了新版本3.8.7
提bug前必看 请先回答下列三个问题,否则不允处理,谢谢配合。 1、我最新的Demo是否有这个bug? 答:是的
2、你用的是什么版本?升级到最新版后是否正常? 答:最新版本3.8.3
3、是否有改动过我库内部的代码? 答:无
我如何复现这个bug? 1、受限的权限访问相册, 2、在TZImagePickerController选择某个图片; 3、然后到手机设置中将其取消; 4、会到AppTZImagePickerController右下角的按钮状态未更新,仍可以点击。