点击状态栏时,我可以禁用/编辑自动跳转到顶部滚动吗?

时间:2013-03-13 20:52:35

标签: ios objective-c uitableview uiscrollview scrolltop

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

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

有没有办法实现上述任何一项?

3 个答案:

答案 0 :(得分:14)

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

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

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

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

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
    // re-enable timer
}

答案 1 :(得分:7)

您可以尝试:

[myView setScrollsToTop:NO];

答案 2 :(得分:0)

对于 swift 5

override func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
    return false
}