我正在开发一个带有故事板的 iOS 5 项目,因此在 IB 中使用动态表格单元格原型。在其中一个视图中,我有一个带有可变高度单元格的表格视图,单元格高度是根据内容的高度计算的。
tableView:heightForRowAtIndexPath:
首次显示表格视图时,为所有单元格返回正确的值。向下滚动一些项目时一切都很好,但随后出现了问题:实际的单元格似乎是正确的高度,包括它们的触摸区域,但它们的分隔符呈现在错误的位置(在单元格内部而不是它们之间)。
从测量分隔器的位置来看,似乎细胞重复使用可能与此有关。前三个单元格的分隔符正确呈现,但第四个单元格不正确。heightForRowAtIndexPath:
返回正确的高度(在本例中为 125 像素),并且其包含的子视图都在正确的位置。但是,分隔符仅呈现距离前一个分隔符 108 像素的位置,将其放置在单元格的 125 像素高区域内。
这是踢球者:108px 是第一个表格单元格的高度,现在看不见并且可能被重复使用。我没有明确的证据,但似乎表格视图忽略heightForRowAtIndexPath:
了这些单元格,只是根据重用的单元格高度呈现分隔符。
这并不能解释为什么一堆后来的较短的单元格根本没有呈现分隔符。但这就是我所要做的。
是否有解决方法、IB 设置或其他可能有帮助的方法?