在选择时,我改变了UITableViewCell的高度(从笔尖加载) 但是当我这样做时,分隔线处于错误的位置。
在屏幕截图中,第一行被选中,因此比其他行更大。
在分隔符位置,它看起来像所选单元格之后的单元格。第二个单元格“具有”第一个单元应具有的大小。
要更改高度,请在tableView:didSelectRowAtIndexPath:
中保存选定的索引路径,然后在tableView:heightForRowAtIndexPath:
中进行比较。如果索引路径相同,则返回增加的高度。在一些NSLog的帮助下,我确保返回正确的高度
如果我要调整错误的单元格,单元格的视图会重叠,这种情况就不会发生。
如果我点击第一个单元格的Line 3
,tableView:didSelectRowAtIndexPath:
将会触发,而索引路径就是第一个单元格的索引路径。所以我猜高度是正确的,并且tableview将分隔符绘制在错误的位置。
有人知道我做错了什么吗? 有解决方案吗或者我应该向苹果提交另一个错误吗?
编辑:如果我不重复使用我的单元格,它会按预期工作。
答案 0 :(得分:3)
事实证明我已经关闭了UITableViewCell的“Autoresize subviews”。
如果我打开该选项,它会按预期工作。
答案 1 :(得分:2)
我有类似的问题。就我而言,我使用layoutSubviews
在我的手机上进行自定义布局。分隔符位置错误,附件视图的布局也没有了。
就我而言,问题是未能拨打[super layoutSubviews]
。