Skip to content

Commit a37ed2e

Browse files
committed
优化photoLibraryDidChange,避免多余的刷新
1 parent 9868617 commit a37ed2e

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

TZImagePickerController/TZImagePickerController/TZAssetCell.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ - (instancetype)initWithFrame:(CGRect)frame {
542542

543543
- (void)layoutSubviews {
544544
[super layoutSubviews];
545-
_tipLabel.frame = CGRectMake(5, self.tz_centerY, self.tz_width - 10, self.tz_height / 2 - 5);
545+
_tipLabel.frame = CGRectMake(5, self.tz_height / 2, self.tz_width - 10, self.tz_height / 2 - 5);
546546
}
547547

548548
@end

TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,8 +1100,21 @@ - (void)photoLibraryDidChange:(PHChange *)changeInstance {
11001100
return;
11011101
}
11021102
dispatch_async(dispatch_get_main_queue(), ^{
1103-
[self.model refreshFetchResult];
1104-
[self fetchAssetModels];
1103+
PHFetchResultChangeDetails *changeDetail = [changeInstance changeDetailsForFetchResult:self.model.result];
1104+
if (changeDetail == nil) return;
1105+
if (changeDetail.hasIncrementalChanges == NO) {
1106+
[self.model refreshFetchResult];
1107+
[self fetchAssetModels];
1108+
} else {
1109+
NSInteger insertedCount = changeDetail.insertedObjects.count;
1110+
NSInteger removedCount = changeDetail.removedObjects.count;
1111+
NSInteger changedCount = changeDetail.changedObjects.count;
1112+
if (insertedCount > 0 || removedCount > 0 || changedCount > 0) {
1113+
self.model.result = changeDetail.fetchResultAfterChanges;
1114+
self.model.count = changeDetail.fetchResultAfterChanges.count;
1115+
[self fetchAssetModels];
1116+
}
1117+
}
11051118
});
11061119
}
11071120

0 commit comments

Comments
 (0)