UITableView分隔符位置错误

时间:2011-02-11 16:23:13

标签: iphone cocoa-touch uitableview

在选择时,我改变了UITableViewCell的高度(从笔尖加载) 但是当我这样做时,分隔线处于错误的位置。

enter image description here

在屏幕截图中,第一行被选中,因此比其他行更大。
在分隔符位置,它看起来像所选单元格之后的单元格。第二个单元格“具有”第一个单元应具有的大小。

要更改高度,请在tableView:didSelectRowAtIndexPath:中保存选定的索引路径,然后在tableView:heightForRowAtIndexPath:中进行比较。如果索引路径相同,则返回增加的高度。在一些NSLog的帮助下,我确保返回正确的高度 如果我要调整错误的单元格,单元格的视图会重叠,这种情况就不会发生。

如果我点击第一个单元格的Line 3tableView:didSelectRowAtIndexPath:将会触发,而索引路径就是第一个单元格的索引路径。所以我猜高度是正确的,并且tableview将分隔符绘制在错误的位置。


有人知道我做错了什么吗? 有解决方案吗或者我应该向苹果提交另一个错误吗?


编辑:如果我不重复使用我的单元格,它会按预期工作。

2 个答案:

答案 0 :(得分:3)

事实证明我已经关闭了UITableViewCell的“Autoresize subviews”。

如果我打开该选项,它会按预期工作。

答案 1 :(得分:2)

我有类似的问题。就我而言,我使用layoutSubviews在我的手机上进行自定义布局。分隔符位置错误,附件视图的布局也没有了。

就我而言,问题是未能拨打[super layoutSubviews]