Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用自动布局将UIView固定在UINavigationBar的正下方_Ios_Uiview_Autolayout_Uinavigationbar - Fatal编程技术网

Ios 使用自动布局将UIView固定在UINavigationBar的正下方

Ios 使用自动布局将UIView固定在UINavigationBar的正下方,ios,uiview,autolayout,uinavigationbar,Ios,Uiview,Autolayout,Uinavigationbar,我需要使用自动布局在UINavigationBar(由UINavigationController所有)下方固定一个UIView 这里需要技巧的是,ui视图需要是ui应用程序的主ui窗口的子视图 插入的视图需要跟踪导航栏的位置,例如,如果iOS状态栏的高度增加到两倍(例如,在绿色“返回呼叫”场景中),或在横向视图中更改高度 解决方案还需要使用透明的UINavigationBars,其中视图控制器的edgesForExtendedLayout未设置为无。您是否尝试使用topLayoutGuide(

我需要使用自动布局在
UINavigationBar
(由
UINavigationController
所有)下方固定一个
UIView

这里需要技巧的是,
ui视图
需要是
ui应用程序
的主
ui窗口
的子视图

插入的视图需要跟踪导航栏的位置,例如,如果iOS状态栏的高度增加到两倍(例如,在绿色“返回呼叫”场景中),或在横向视图中更改高度


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

您是否尝试使用
topLayoutGuide
(部分布局指南)中所述的
topLayoutGuide

您应该能够通过以下方式实现所需的结果,而不必计算导航栏高度:

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

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

你知道如何做到这一点吗?我从来没有找到一个我完全满意的解决方案,它没有对导航栏的当前高度做出假设。