我试过这个:
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
但是当我将表格视图滚动到顶部时它没有触发。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
确实开火了,所以代表不是问题。
在 viewDidLoad 我也设置了[myTbl setDoesScrollToTop:YES];
我试过这个:
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
但是当我将表格视图滚动到顶部时它没有触发。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
确实开火了,所以代表不是问题。
在 viewDidLoad 我也设置了[myTbl setDoesScrollToTop:YES];
scrollViewDidScrollToTop:
当用户单击状态栏并且scrollsToTop
属性设置为时,该方法会触发YES
。从文档:
滚动视图在完成滚动到内容顶部时发送此消息。如果内容的顶部已经显示,它可能会立即调用它。要使滚动到顶部手势(点击状态栏)生效,UIScrollView 的 scrollsToTop 属性必须设置为 YES。
如果用户手动滚动到顶部,它不会触发。如果您想处理这种情况,您将必须实现该scrollViewDidScroll:
方法并自己检查滚动是否在顶部。
您可以通过contentOffset属性检查这一点,例如:
if (scrollView.contentOffset.y == 0) { // TOP }
当表格视图位于导航栏下方并启用安全区域布局指南时,可以进行以下检查:
if (tableView.contentOffset.y + tableView.safeAreaInsets.top) == 0 { ... }
奖励:如果您想避免在加载内容之前获得 0,请检查 contentSize:
if tableView.contentSize.height > 0 &&
((tableView.contentOffset.y + tableView.safeAreaInsets.top) == 0) { ... }