带标签栏和导航栏的Scrollview Autolayout

时间:2016-03-14 20:47:19

标签: ios uiscrollview autolayout uinavigationbar tabbar

我需要在包含导航栏和tabbar的viewcontroller中的uiscrollview中设置约束。我在scrollview中放置了一个uiview(contentView),它与scrollview的高度相同。这些是我设置的东西,

  1. 为scrollview(顶部,底部,左侧,右侧)设置4个约束 未选中边距的约束,所有边都为0.
  2. 为uiview(contentView)设置4个约束 scrollview(顶部,底部,左侧,右侧),边缘约束 未选中,所有边都为0。
  3. 设置相等的宽度和相等的高度 用于scrollview和UIView(contentView)
  4. 输出显示如下uiview(contentView)放置低于64 px(大约)。这个视图不应该这样放置。任何人都可以帮我解决这个问题。

    这是我工作的项目演示和can be downloaded here

5 个答案:

答案 0 :(得分:2)

选择场景,然后在属性检查器中取消选中:“在顶栏下”和“在底栏下”。

enter image description here

然后在故事板中,使滚动视图从视图控制器的顶部开始,导航栏开始的位置,然后是导航栏结束的UIView。

稍后,选择Scroll View并默认设置约束。

enter image description here

我想这不是最干净的方法,但是我遇到了同样的问题并为我工作。

答案 1 :(得分:1)

您可以尝试self.automaticallyAdjustsScrollViewInsets = false

答案 2 :(得分:0)

标签栏必须在scrollView下的树中设置,如下所示:

controller tree

答案 3 :(得分:0)

尝试

override func viewDidLoad() {
    self.edgesForExtendedLayout = UIRectEdge()
    self.extendedLayoutIncludesOpaqueBars = false

}

答案 4 :(得分:-1)

我找到了它的解决方案,将父ViewController类设置为顶部栏并禁用它并在父项中相应地更改了框架,并将相同的属性和框架设置为子视图控制器修复了该问题。