删除UITableViewCell会导致其他自定义单元格的大小变大

时间:2016-08-10 08:19:51

标签: ios objective-c uitableview autolayout nslayoutconstraint

我正在使用自我调整大小UITableViewCell,他们总是缩小到最小尺寸。这很棒。

但是,当我删除一个单元格时,这会导致其他单元格的大小增加,直到它们下一次出列或重新加载。

我正在使用正确的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];

我有什么遗失的吗?

这可能是约束的优先问题吗?例如内容压缩阻力和内容拥抱?

1 个答案:

答案 0 :(得分:0)

怀疑这是一个优先事项相互冲突的问题。

要解决此问题,您希望保持较小的视图的内容拥抱优先级应该更高。对我而言,UIView的情况出乎意料地增长了。