UIScrollView,检测可滚动区域的高度,而无需一直向下滚动

时间:2018-10-08 13:14:07

标签: ios objective-c swift uitableview uiscrollview

当用户滚动50%的scrollView内容时,我试图记录一些事件。

我可以使用scrollView.contentOffset.y获取滚动量,如下所示:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"%f",scrollView.contentOffset.y);
}

迅速:

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    print(scrollView.contentOffset.y)
}

当我向下滚动到scrollView的底部时,我可以找到一下contentArea的高度,可以说值是2000,并且可以硬编码值1000,因为只有在用户超过整个contentSize的50%。

但是我希望它是动态的,因为tableView的dataSource将来可能会更改,这将导致scrollView的偏移量的底部大于或小于2000。

我想知道是否甚至在滚动到底部之前也可以检测到tableView的最大contentOffset值?

谢谢。

1 个答案:

答案 0 :(得分:1)

UIScrollView有一个名为“ contentSize”的属性。

https://developer.apple.com/documentation/uikit/uiscrollview/1619399-contentsize

在填充表格视图以获取表格视图可以容纳的总高度后,您可以使用它。

注意:仅当行的高度恒定而不是可变时有效