7

我正在使用带有自动向下滚动的 tableView 的应用程序,因此点击通常会跳到表格顶部的状态栏会导致问题(它开始滚动,但如果自动滚动滴答作响,它会停止并离开它在中间的某个地方)。

我要么想禁用它,要么至少在点击它时插入一些代码以暂时暂停计时器,然后在它到达顶部时恢复它。

有什么方法可以实现这些目标吗?

4

3 回答 3

15

UIScrollView(并且UITableView作为它的子类)具有scrollsToTop默认为 的属性YES,使其在点击状态栏时滚动到顶部。您所要做的就是将其设置为NO.

但是,请记住,iOS 用户可能会期待这种行为,因此从用户体验的角度来看,将其关闭可能不是最好的主意。如果您只需要在特定时间禁用它,您也可以保留它并从委托方法YES返回。NO-scrollViewShouldScrollToTop:

实际上,通过委托处理它可能非常适合您的情况:

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
    // disable timer
    return YES;
}

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
    // re-enable timer
}
于 2013-03-13T21:01:12.163 回答
7

你可以试试:

[myView setScrollsToTop:NO];
于 2013-03-13T20:57:08.593 回答
0

对于迅捷5

override func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
    return false
}
于 2021-04-15T08:50:35.303 回答