ios – 通过单元重用错误地绘制UITableView分隔符?

前端之家收集整理的这篇文章主要介绍了ios – 通过单元重用错误地绘制UITableView分隔符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个带有故事板的iOS 5项目,因此在IB中使用动态表格单元原型.在其中一个视图中,我有一个带有可变高度单元格的表格视图,单元格高度根据内容的高度计算.

tableView:heightForRowAtIndexPath:在首次显示表视图时返回所有单元格的正确值.向下滚动几个项目时一切都很好,但随后出现问题:实际的单元格似乎是正确的高度,包括它们的触摸区域,但它们的分隔符在错误的位置(在单元格内而不是它们之间)呈现.

从测量分隔符位置开始,似乎单元格重用可能与此有关.前三个单元格的分隔符正确呈现,但不是第四个. heightForRowAtIndexPath:返回正确的高度(本例中为125像素),其包含的子视图都在正确的位置.但是,分隔符仅从前一个分隔符渲染108个像素,将其放置在单元格的125像素高区域内.

这是踢球者:108px是第一个表格单元格的高度,现在看不见了,可能会重复使用.我没有明确的证据证明这一点,但似乎表视图忽略了对于这些单元格的heightForRowAtIndexPath:并且只是根据重用的单元格高度渲染分隔符.

这并不能解释为什么一堆较晚的较短单元格根本不会呈现分隔符.但这就是我必须继续下去的全部内容.

是否有解决方法,IB设置或其他可能有帮助的东西?

解决方法

我有同样的问题,分隔符在看似随机的位置显示.

原来问题是我覆盖了layoutSubviews但忘了调用[super layoutSubviews].添加调用可以解决我的问题.

猜你在找的iOS相关文章