Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 9对导航条的编程约束?_Ios_Swift_Nslayoutconstraint_Programmatically Created - Fatal编程技术网

iOS 9对导航条的编程约束?

iOS 9对导航条的编程约束?,ios,swift,nslayoutconstraint,programmatically-created,Ios,Swift,Nslayoutconstraint,Programmatically Created,我试图以编程方式将约束设置到UIViewController导航栏的顶部,但我看不到如何使其正常工作。这是我的密码: func setup() { let containerView = UIView() containerView.backgroundColor = .red containerView.translatesAutoresizingMaskIntoConstraints = false let payeeNameTextField = UITe

我试图以编程方式将约束设置到UIViewController导航栏的顶部,但我看不到如何使其正常工作。这是我的密码:

func setup() {
    let containerView = UIView()
    containerView.backgroundColor = .red
    containerView.translatesAutoresizingMaskIntoConstraints = false

    let payeeNameTextField = UITextField()
    payeeNameTextField.backgroundColor = .green
    payeeNameTextField.translatesAutoresizingMaskIntoConstraints = false

    view.addSubview(containerView)
    view.addSubview(payeeNameTextField)

    //iOS 9 Constraints 
    //x,y,w,h

    // Constraint To Nav Bar
    containerView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    containerView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    containerView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
    containerView.heightAnchor.constraint(equalToConstant: 20).isActive = true

    // Constraint to Bottom Anchor
    payeeNameTextField.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    payeeNameTextField.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
    payeeNameTextField.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
    payeeNameTextField.heightAnchor.constraint(equalToConstant: 50).isActive = true


}
我知道设置topAnchor是错误的,但我试图搞乱这一点,似乎无法让红色背景显示出来


提前感谢您的任何意见

我想这对我很有用。红色视图显示在状态栏下方,它应该显示在状态栏下方。您发布的代码没有定义导航栏,只是一个红色视图,高度为20点,连接到视图控制器视图的顶部。您是对的,我知道它显示在导航栏下方。有没有关于如何从导航栏锁定的想法。我只是不能把语法放在一起,把它固定在导航栏上,而不是视图的顶部锚。这取决于一件事-导航栏是如何定义的?你是怎么创造的?在代码中,通过IB添加,还是通过IB菜单“嵌入”?(我猜这不是最后一个,因为您的代码可以工作。)我没有创建导航栏,我正在以编程方式完成所有工作。我尝试将我的导航栏定义为:
let-navBar=navigationController?.navigationItem.titleView?.topAnchor
,将其展开:
guard-let-newNav=navBar-else{return}
,并将其用作y约束:
containerView.topAnchor.constraint(equalTo:newNav).isActive=true
…但这似乎不起作用..我会给出一个答案-如果不起作用,我会删除它。对于我的应用程序,我通过IB菜单结束了导航控制器,您的代码运行良好。所以,如果我的答案不起作用,我会说在那里试试。我想这对我很有效。红色视图显示在状态栏下方,它应该显示在状态栏下方。您发布的代码没有定义导航栏,只是一个红色视图,高度为20点,连接到视图控制器视图的顶部。您是对的,我知道它显示在导航栏下方。有没有关于如何从导航栏锁定的想法。我只是不能把语法放在一起,把它固定在导航栏上,而不是视图的顶部锚。这取决于一件事-导航栏是如何定义的?你是怎么创造的?在代码中,通过IB添加,还是通过IB菜单“嵌入”?(我猜这不是最后一个,因为您的代码可以工作。)我没有创建导航栏,我正在以编程方式完成所有工作。我尝试将我的导航栏定义为:
let-navBar=navigationController?.navigationItem.titleView?.topAnchor
,将其展开:
guard-let-newNav=navBar-else{return}
,并将其用作y约束:
containerView.topAnchor.constraint(equalTo:newNav).isActive=true
…但这似乎不起作用..我会给出一个答案-如果不起作用,我会删除它。对于我的应用程序,我通过IB菜单结束了导航控制器,您的代码运行良好。所以如果我的答案不起作用,我会说在那里试试。