我使用的是自调整尺寸的UITableViewCell
s,它们总是缩小到最小尺寸。这太棒了。
然而,当我删除一个单元格时,这会导致其他单元格的大小增加,直到它们下一次出列或重新加载。
我正在使用正确的UITableView
方法删除数据源和单元格。。。
[self.tableView beginUpdates];
[self.dataSource deleteObjectsAtIndices:[self indexSetFromIndexPaths:@[indexPath]]];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
NSArray *previousDataSourceState = [self.dataSource.objects copy];
[self.dataSource reconstructObjects];
NSArray *indexPathsToBeAdded = [self indexPathsOfObjectsFromDatasource:self.dataSource.objects notPresentInDataSource:previousDataSourceState];
[self.tableView insertRowsAtIndexPaths:indexPathsToBeAdded withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
我有什么东西不见了吗?
这可能是一个有限制的优先问题吗?例如内容压缩阻力和内容拥抱?
正如所怀疑的那样,这是一个优先级相互冲突的问题。
为了解决这个问题,在你希望保持较小的视图上,拥抱内容的优先级应该更高。对我来说,UIView
就是这样,它出乎意料地增长。