使用Autolayout将UIView放在UINavigationBar下方

时间:2015-09-14 15:01:59

标签: ios uiview autolayout uinavigationbar

我需要使用Autolayout在UIView(由UINavigationBar拥有)的正下方UINavigationController。{/ p>

这里棘手的问题是UIView需要成为UIApplicationUIWindow的子视图。

插入的视图需要跟踪导航栏的位置,例如,如果iOS状态栏增长到双倍高度(例如,在绿色"返回呼叫"场景中),或者更改高度,如景观观。

解决方案还需要使用透明的UINavigationBar,其中视图控制器的edgesForExtendedLayout未设置为无。

1 个答案:

答案 0 :(得分:0)

您是否按照this Ray Wanderlich's tutorial布局指南)中的说明尝试使用topLayoutGuide了?

你应该能够达到预期的结果 - 而不必计算navBar的高度 - 用这样的东西:

let views = ["myView": myView, "topLayoutGuide":topLayoutGuide]

let verticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
  "V:[topLayoutGuide]-[myView(30)]",
  options: [],
  metrics: nil,
  views: views)