【问题标题】:UIWebView scrollView changed it content offset when status bar hidesUIWebView scrollView 在状态栏隐藏时更改了它的内容偏移量
【发布时间】:2014-11-14 12:31:52
【问题描述】:

我的应用程序 (iOS7) 中有一个视图,其中有一个 view controllers 层次结构 ViewController->childViewController->childViewController->myChildViewControllermyChildViewController 上面有一个全尺寸的 UIWebView。我有一个UIButton 来隐藏UIToolBarchildViewController 之一。当我按下按钮时 - UIWebView scrollView 将其 content offset 更改为 status bar 隐藏。如何避免这种行为?

【问题讨论】:

    标签: ios objective-c ios7 ios7-statusbar


    【解决方案1】:

    前面提到的解决方案效果很好。

    [self addSubview:webView];
    self.automaticallyAdjustsScrollViewInsets = NO;
    

    【讨论】:

      【解决方案2】:

      只有当您将 UIWebView 设为主视图时才会发生这种情况,例如

      viewController.view = webView;
      

      如果你把它变成一个子视图,它应该忽略偏移量:

      webView.frame = viewController.view.bounds;
      webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
      [viewController.view addSubview:webView];
      

      如果调整父视图控制器的大小,它也可能会改变......

      您可以在包含 Web 视图的视图控制器中尝试另一件事:

      [viewController setAutomaticallyAdjustsScrollViewInsets:NO];
      

      【讨论】:

      • 我的 'UIWebView' 不是 'myViewController.view' 它在 'myViewController.view.contentView' 上。我尝试将“automaticallyAdjustsScrollViewInsets”设置为“NO”,但这对我不起作用。
      • 视图控制器的类型是什么?
      • 'UIViewController'->'UINavigationContoroller'->'UIViewController'->'MyViewController with UIWebView'
      • 据我所知,UIView 没有contentView 属性...您的MyViewController 的超类是什么?
      • 是的。 UIViewController 没有 contentView 属性。这是UIViewControllerself.view 之上的简单UIView 实例。它用于通过边距进行简单的尺寸管理。但我检查了尺寸并试图从中删除所有边距。这没有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多