banchichen / TZImagePickerController

一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能,支持iOS6+。 A clone of UIImagePickerController, support picking multiple photos、original photo、video, also allow preview photo and video, support iOS6+
MIT License
8.05k stars 1.86k forks source link

v3.8.6切换相册,导致选中状态丢失 #1687

Closed lionvoom closed 1 month ago

lionvoom commented 2 months ago

// TZPhotoPickerController.m 切换相册导致,没有保留其它相册已选中的model状态,只保留了当前相册的状态,而且原本选择顺序也变了

- (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];
    }
    // 拿到了最新的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;
}
banchichen commented 1 month ago

是为了修复 https://github.com/banchichen/TZImagePickerController/issues/1656 引起

目前序号错乱问题已经修复,1656 issue使用了新方案实现:https://github.com/banchichen/TZImagePickerController/commit/2a4caa806c4f9356df1bdc8233b42350bb41c652#diff-e0526319e03bba22c65b63d870193b138512ff0ac9047d894e1602ad957e4f47R1136

已发布了新版本3.8.7