我有一个 UITableView
,其中每个单元格的大小不同(这取决于需要显示的内容量)。
因此(或者至少我认为是这样),当用户第一次开始滚动时,垂直滚动条最初很小。当用户继续滚动时,滚动条会变长,当用户到达最后一个单元格时,滚动条会达到正确的长度。
有人对如何解决这个问题有任何想法吗(我使用的是 Swift 和 Xcode 7.1.1)?
最佳答案
当您为 UITableView
提供的估计行高始终大于实际行高时,通常会发生这种情况。
由于您没有说明如何确定行的高度,因此我假设您正在使用自动布局。
您可以将 estimatedRowHeight
设置为更接近平均行高的值。
tableView.estimatedRowHeight = 100
另一个选项是使用 UITableViewDelegate
方法返回每行的估计高度,该高度更接近实际值。
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let estimatedHeight = // some fast calculation based on the data for the row
return estimatedHeight
}
如果您的行大小通常相同且变化很小,则选择第一个选项。如果行大小可能有很大变化,或者您只是无法知道良好的平均值是多少,那么第二个选项会更好。
关于ios - UITableView 滚动条随着用户滚动而改变大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33785817/