当用户滚动时,UITableView滚动条的大小会发生变化

时间:2015-11-18 16:51:57

标签: ios swift uitableview scrollbar

我有UITableView,其中每个单元格的大小不同(取决于需要显示的内容量)。

结果(或者至少我认为结果),当用户第一次开始滚动时,垂直滚动条最初很小。当用户继续滚动时,滚动条会增长,当用户进入最后一个单元格时,滚动条会达到正确的长度。

有没有人对如何解决这个问题有任何想法(我使用的是Swift和Xcode 7.1.1)?

1 个答案:

答案 0 :(得分:3)

通常会在您为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
}

第一个选项是,如果您的行通常大小相同,变化很小。如果行大小可能有很多变化,或者你无法知道平均值是多少,那么第二个选项会更好。