【问题标题】:ScrollsToTop feature is not working in iOS9 properlyScrollsToTop 功能在 iOS9 中无法正常工作
【发布时间】:2016-06-09 08:18:39
【问题描述】:

我有一个 UIViewController 有一个 UITableView 有大数据。我想在按下状态栏时实现scrolltotop的功能。

我通过我的故事板设置了很多 UIView,所以我首先尝试为所有设置 scrollsToTop = NO,然后在 viewDidLoad 中为 UITableView 设置 scrollsToTop = YES

相同的设置/配置适用于iOS8,但不适用于iOS9

我已应用以下代码来禁用启动中所有子视图的滚动:

- (void)disableScrollsToTopPropertyOnAllSubviewsOf:(UIView *)view {

    for (UIView *subview in view.subviews) {
        if ([subview isKindOfClass:[UIScrollView class]]) {
            ((UIScrollView *)subview).scrollsToTop = NO;
        }
        [self disableScrollsToTopPropertyOnAllSubviewsOf:subview];
    }
}

【问题讨论】:

  • 您所要做的就是在点击状态栏时将tableView滚动到顶部正确???
  • 是的,SandeepBhandari。即使是执行相同操作的调整也将不胜感激。
  • 我猜你的例程没有达到一些滚动视图。例如,如果在表格单元格中添加了滚动视图,就会出现问题。
  • 为此我只添加了删除代码,它应该取消设置开始中的所有其他滚动
  • @Subso 如果视图不在层次结构中,则不会。您可以修改代码以打印将scrollsToTop 设置为YES 的滚动视图并稍后调用它,例如响应按钮单击。这应该会给你一个更好的信息。

标签: ios objective-c uitableview statusbar


【解决方案1】:

使用内容偏移量试试

self.tableView.contentOffset = CGPointMake(0, 0 - self.tableView.contentInset.top);

【讨论】:

    【解决方案2】:

    确保您在viewDidAppear 上调用它:

    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        // Call scroll to top here
    }
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      幸运的是,这开始在 iOS 10.0 中完美运行

      【讨论】:

        【解决方案4】:

        您的视图层次结构中可能有多个UIScrollView,您只需将要滚动到顶部的一个设置为是,其他设置为scrollsToTop = No;

        【讨论】:

          猜你喜欢
          • 2017-09-23
          • 2013-11-06
          • 2013-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多