2011-02-11 54 views
1

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

enter image description here

在屏幕截图的第一行被选择,并且因此比其他的更大。
从分隔符位置看起来像所选单元格之后的单元格将是大单元格。第二个单元“具有”与第一个单元应具有的大小完全相同的大小。

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

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


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


编辑:如果我不重用我的细胞,它按预期工作。

回答

3

事实证明,我已经关闭了UITableViewCell的“Autoresize子视图”。

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

+0

我会投票100次,如果我可以 – hooleyhoop 2013-10-23 16:58:45

2

我有一个类似的问题。在我的情况下,我使用layoutSubviews在我的手机上进行自定义布局。分离器处于错误的位置,附件视图的布局也已排除。

在我的情况下,该问题未能致电[super layoutSubviews]

+0

同样在这里。 HAHAH – towry 2017-06-24 11:26:08