【问题标题】:Can I disable / edit the automatic jump-to-top scroll when tapping status bar?点击状态栏时可以禁用/编辑自动跳转到顶部滚动吗?
【发布时间】:2013-03-13 20:52:35
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios objective-c uitableview uiscrollview scrolltop


    【解决方案1】:

    UIScrollView(和UITableView 作为它的子类)具有scrollsToTop 属性,默认为YES,当点击状态栏时它会滚动到顶部。您只需将其设置为NO

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

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

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

    【讨论】:

      【解决方案2】:

      你可以试试:

      [myView setScrollsToTop:NO];
      

      【讨论】:

        【解决方案3】:

        对于 Swift 5

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-13
          • 1970-01-01
          • 1970-01-01
          • 2012-02-15
          • 2012-05-29
          • 1970-01-01
          • 2011-11-02
          • 2013-01-29
          相关资源
          最近更新 更多