gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:25:01 26 4
gpt4 key购买 nike

我正在开发一个带有 Storyboard的 iOS 5 项目,因此在 IB 中使用了动态表格单元格原型(prototype)。在其中一个 View 中,我有一个包含可变高度单元格的表格 View ,单元格高度根据内容的高度计算得出。

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

通过测量分离器的位置,似乎电池重用可能与此有关。前三个单元格的分隔符正确呈现,但不是第四个。 heightForRowAtIndexPath: 为其返回正确的高度(在本例中为 125 像素),并且其包含的 subview 都在正确的位置。但是,分隔符仅呈现为距前一个分隔符 108 像素,将其放置在单元格 125 像素高的区域中。

关键是:108px 是第一个表格单元格的高度,现在看不见了,可能会被重复使用。我没有这方面的确切证据,但表格 View 似乎忽略了这些单元格的 heightForRowAtIndexPath:,只是根据重复使用的单元格高度呈现分隔符。

这并不能解释为什么一堆后来的、较短的单元格根本没有呈现分隔符。但这就是我要做的全部。

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

最佳答案

我遇到了同样的问题,分隔符显示在看似随机的位置。

原来问题是我覆盖了 layoutSubviews 但忘了调用 [super layoutSubviews]。添加该调用对我来说解决了这个问题。

关于ios - UITableView 分隔符通过单元格重用错误绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9995208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com