UITableView 分隔符在错误的位置

Posted

技术标签:

【中文标题】UITableView 分隔符在错误的位置【英文标题】:UITableView separator at wrong position 【发布时间】:2011-02-11 16:23:12 【问题描述】:

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

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

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

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


有人知道我做错了什么吗? 有什么解决办法吗?还是我应该向苹果提交另一个错误?


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

【问题讨论】:

【参考方案1】:

原来我已经关闭了 UITableViewCell 的“Autoresize subviews”。

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

【讨论】:

【参考方案2】:

我遇到了类似的问题。就我而言,我使用layoutSubviews 在我的单元格上进行自定义布局。分隔符位置错误,附件视图的布局也出来了。

就我而言,问题是未能调用[super layoutSubviews]

【讨论】:

这里也一样。哈哈

以上是关于UITableView 分隔符在错误的位置的主要内容,如果未能解决你的问题,请参考以下文章

iPhone + UITableView + 行高

分隔符是 UITableViewCell 的一部分吗?

点击时表格视图单元格分隔线消失

UITableviewcell 是错误的数据

通过单元格重用错误绘制的 UITableView 分隔符?

iOS7上的UITableView分隔符颜色错误