From adc2db9bb29e7f316c46b6de679db1522ffc9cc8 Mon Sep 17 00:00:00 2001 From: 杨锴 <841720330@qq.com> Date: 星期五, 23 八月 2024 11:39:37 +0800 Subject: [PATCH] fix --- Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m | 32 +++++++++++++++++++++++--------- 1 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m b/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m index d3a801f..234a90a 100755 --- a/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m +++ b/Pods/TZImagePickerController/TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m @@ -151,7 +151,6 @@ [self configCollectionView]; self->_collectionView.hidden = YES; [self configBottomToolBar]; - [self refreshBottomToolBarStatus]; [self prepareScrollCollectionViewToBottom]; }); } @@ -966,16 +965,12 @@ [selectedAssets addObject:model.asset]; } // 拿到了最新的models,在此刷新照片选中状态 - // 由于可能有照片权限变化,也需要刷新selectedModels https://github.com/banchichen/TZImagePickerController/pull/1658 - NSMutableArray *newSelectedModels = [NSMutableArray array]; for (TZAssetModel *model in _models) { model.isSelected = NO; if ([selectedAssets containsObject:model.asset]) { model.isSelected = YES; - [newSelectedModels addObject:model]; } } - tzImagePickerVc.selectedModels = newSelectedModels; } /// 选中/取消选中某张照片 @@ -1115,10 +1110,14 @@ PHFetchResultChangeDetails *changeDetail = [changeInstance changeDetailsForFetchResult:self.model.result]; if (changeDetail == nil) return; if ([[TZImageManager manager] isPHAuthorizationStatusLimited]) { - self.model.result = changeDetail.fetchResultAfterChanges; - self.model.count = changeDetail.fetchResultAfterChanges.count; - [self fetchAssetModels]; - } else if (changeDetail.hasIncrementalChanges == NO) { + NSArray *changedObjects = [changeDetail changedObjects]; + changeDetail = [PHFetchResultChangeDetails changeDetailsFromFetchResult:self.model.result toFetchResult:changeDetail.fetchResultAfterChanges changedObjects:changedObjects]; + if (changeDetail && changeDetail.removedObjects.count) { + [self handleRemovedAssets:changeDetail.removedObjects]; + } + } + + if (changeDetail.hasIncrementalChanges == NO) { [self.model refreshFetchResult]; [self fetchAssetModels]; } else { @@ -1134,6 +1133,21 @@ }); } +- (void)handleRemovedAssets:(NSArray<PHAsset *> *)removedObjects { + TZImagePickerController *tzImagePickerVc = (TZImagePickerController *)self.navigationController; + for (PHAsset *asset in removedObjects) { + Boolean isSelected = [tzImagePickerVc.selectedAssetIds containsObject:asset.localIdentifier]; + if (!isSelected) continue; + NSArray *selectedModels = [NSArray arrayWithArray:tzImagePickerVc.selectedModels]; + for (TZAssetModel *model_item in selectedModels) { + if ([asset.localIdentifier isEqualToString:model_item.asset.localIdentifier]) { + [tzImagePickerVc removeSelectedModel:model_item]; + } + } + [self refreshBottomToolBarStatus]; + } +} + #pragma mark - Asset Caching - (void)resetCachedAssets { -- Gitblit v1.7.1