我正在使用带有自动向下滚动的tableView的应用程序,因此点击状态栏(通常会跳到表格的顶部)会导致问题(它开始滚动但是如果自动滚动滴答,则停下来,把它留在中间的某个地方。)
我想要禁用它,或者至少在点击一些代码时暂时暂停计时器,然后在它到达顶部时恢复它。
有没有办法实现上述任何一项?
答案 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
}