【发布时间】:2014-10-30 10:38:27
【问题描述】:
我正在使用 iOS 8 新的自调整单元格。从视觉上看,它工作得很好——每个单元格都有正确的大小。但是,如果我尝试滚动到最后一行,表格视图似乎不知道它的正确大小。这是一个错误还是有解决办法?
以下是重现问题的方法:
使用这个项目 - TableViewCellWithAutoLayoutiOS8(引用自 this SO answer),我得到了预期的自动调整大小的单元格。
但是,如果我调用 scrollToRowAtIndexPath 函数,像这样:
tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: model.dataArray.count - 1, inSection: 0), atScrollPosition: .Bottom, animated: true)
我没有到达最后一行 - 它只会让我走到一半。
即使尝试使用这样的低级函数:
tableView.setContentOffset(CGPointMake(0, tableView.contentSize.height - tableView.frame.size.height), animated: true)
结果不如预期,不会走到最后。如果我多次单击它或等待片刻,最终它会到达正确的位置。似乎 tableView.contentSize.height 设置不正确,所以 iOS“不知道”最后一个单元格在哪里。
不胜感激。
谢谢
【问题讨论】:
-
一些问题:它是否适用于开头的行?是否有停止工作的截止点?是一个部分的问题还是所有部分的问题?您的自动布局是否有任何错误?您估计的细胞高度与细胞的实际高度是否有很大差异?最后,如果您有可重复的错误,请报告给:bugreport.apple.com
-
我插入的任何行索引都不准确。仅用 1 个部分进行了尝试。 IB/控制台中没有报告错误。估计的高度似乎是平均水平。我认为这似乎是一个错误,但也许这篇文章会有所帮助:) 谢谢。
-
即使是 ios 8 和 Xcode GM 种子也没有修复这个 :(
-
是时候记录一个错误了,尽管我很惊讶没有其他人遇到过这个问题。这种模式并不少见。
-
我遇到了同样的问题。此错误的另一个副作用是,当您滚动到“底部”(或靠近该位置的某个位置)然后向上滚动时,表格视图会在从顶行重新计算正确的单元格大小时跳转。如果你 scroll:animated NO (它没有给表格视图加载顶部单元格的时间),就会发生这种情况。
标签: ios uitableview swift ios8