是否有可能将UIView的顶部固定到导航栏的底部?

我试图定位我的UIView是在导航栏下20pt,但是当我把它设置为相对于视图控制器上的视图,它仍然在20pt的导航栏下,我不想硬编码。

是否有可能将其放置在导航栏之外?

尝试添加与TopLayoutGuide的限制,

TopLayoutGuide和self.view之间的主要区别是,顶部布局指南从bottom of status bar + bottom of navigation bar(if exist)开始, bottom of status bar + bottom of navigation bar(if exist)开始,但是self.view总是从iOS 7的(0,0)坐标开始为半透明导航栏。

所以在你的情况下,你应该尝试从顶部布局指南。

顶部布局指南self.view

所以你的UIView坐在一个UIViewController,正确的?

当你将最初的内部UIView定义到UIViewController的时候,你可以将它的坐标设置为距离ViewController顶部20px吗?

例如:

 // // ViewControllerEx.swift // import UIKit class ViewControllerExample: UIViewController { override func viewDidLoad() { super.viewDidLoad() var innerContainer = UIView(frame: CGRectMake(0, 20, self.view.bounds.width, self.view.bounds.height-20)) self.view.addSubview(innerContainer) } } 

要以编程方式使用视图控制器的topLayoutGuide

 override func viewDidLoad() { ... myView.topAnchor.constraint(equalTo: self.topLayoutGuide.bottomAnchor).isActive=true ... }