IOS / Objective-C:重用单元格抛出TableviewCell中不同大小元素的Autolayout

时间:2018-02-01 22:14:17

标签: ios objective-c autolayout reuseidentifier

我在tableview中显示Feed项。根据项目,单元格必须更大或更小 - 例如更大以容纳照片或更大仍然如果它引用另一个Feed项目(如文章),我必须显示引用的项目。

在大多数情况下,我使用自动布局来根据内容让单元格自动展开或收缩。但是,在几种情况下,这几乎是不可能的,因此我重置了代码中约束的值。例如,如果在一种情况下没有照片,我会缩小代码中单元格的高度,因为单元格本身并没有缩小。

页面加载时这很好用。但是当您滚动并重复使用单元格时,会导致奇怪的效果,例如单元格垂直扩展或线条相互挤压。

关于SO的一些问题建议使用该方法:

-(void) tableView:(UITableView *)tableView didEndDisplayingCell:(IDFeedCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
   //Undo changes here

    }

问题是我不知道如何撤消更改。例如,如果我通过设置

来缩小单元格
self.height.constant = 100;

我应该将它设置回故事板中的常量值吗?

当我不知道下一个要重复使用单元格的项目时,我可以将其设置为什么值。

感谢您的任何建议。顺便说一句,autolayout显示没有问题。

0 个答案:

没有答案