IOS9:UINavigationController中的UIScrollView偏移量

时间:2015-11-04 15:07:06

标签: ios uiscrollview uinavigationcontroller uinavigationbar

这令人沮丧。我在使用UINavigationController(以及因此UINavigationBar)时遇到问题,将我的UIScrollView内容推到顶部,类似于此处发现的问题:

iOS 7 -- navigationController is setting the contentInset and ContentOffset of my UIScrollView

IOS7 : UIScrollView offset in UINavigationController

我尝试了两种建议的解决方案,即在我的视图控制器self.automaticallyAdjustsScrollViewInsets = true方法中设置viewDidLoad()并在界面生成器中取消选择Adjust Scroll View Insets。两种解决方案都删除了顶部的边距,但正如其他一些人已经注意到的那样,我不能再滚动了。

UIScrollView和ContentView填充整个视图控制器。我的内容视图(在UIScrollView中)包含标签,段和底部的UITextView。它与内容视图中的内容有关吗?

如果需要,我可以附上图片。使用XCode 7,Swift 2和iOS 9。

3 个答案:

答案 0 :(得分:2)

我解决了我的问题。在自动布局中,我没有设置内容视图的高度限制。 以前,我已将内容视图的底部固定到包含UIScrollView的视图控制器。 我删除了那个引脚并明确设置了高度。它现在有效。

答案 1 :(得分:1)

我刚遇到同样的问题。我有一个“关于”视图,其中包含一堆包含静态文本的标签。我在视图控制器内部有一个UIScrollView,它被推下来了。我没有固定在屏幕底部的标签,当没有必要这样做的时候,这个标签被从页面上抽出。

我有以下视图层次结构:

  • 查看控制器
    • 查看
    • 滚动视图
      • 内容视图(UIView)
      • 标签
      • 标签

Content View固定在Scroll View的范围内,但宽度和高度与View具有相同的约束。

我通过添加另一个UIView作为View的孩子来解决这个问题。我的层次结构现在看起来像这样:

  • 查看控制器
    • 查看
    • 内部视图(UIView)
    • 滚动视图
      • 内容视图(UIView)
      • 标签
      • 标签

我将Content View上的高度限制设置为与Inner View相等的高度。这解决了我的问题,一切都开始正确显示。 Inner View固定在View的边框上。

注意:在层次结构中,Label应为Content View的子项。在预览中,它显示Markdown列表不能那么深。

答案 2 :(得分:0)

可能或可能不适用于你,但如果你有一个导航控制器并且你不需要它是半透明的,你可以做一些事情import UIKit import QuartzCore class Recht: UIViewController, ENSideMenuDelegate, UIWebViewDelegate { @IBOutlet var pdfView: UIWebView! override func viewDidLoad() { super.viewDidLoad() pdfView.delegate = self let url = NSBundle.mainBundle().URLForResource(String(lawNumberToPresent), withExtension: "pdf") let pdfDoc = PDFDocument(URL: url) pdfDoc.pageCount() } }

这可能有助于您的奇数抵消。