0

我下面的代码生成下面的图像。

在此处输入图像描述

我想要的是视图控制器用户的高度UIView正好是视图控制器用户的一半,例如:

constraint(equalTo: view.layoutMarginsGuide.bottomAnchor, multiplier: 1/2)

我不知道把它放在哪里,因为我正在为每一面创建一个 var。

import UIKit

class ViewController: UIViewController {

    var myView = UIView()
    var topConstraint: NSLayoutConstraint!
    var bottomConstraint: NSLayoutConstraint!
    var leadingConstraint: NSLayoutConstraint!
    var trailingConstraint: NSLayoutConstraint!
    var jessicaAlba:Float = 50

    override func viewDidLoad() {
        super.viewDidLoad()

        myView.translatesAutoresizingMaskIntoConstraints = false
        myView.backgroundColor = UIColor.orange
        view.addSubview(myView)

        topConstraint = myView.topAnchor.constraint(equalTo: view.topAnchor, constant: CGFloat(jessicaAlba))
        topConstraint.isActive = true
        bottomConstraint = myView.bottomAnchor.constraint(equalTo: view.bottomAnchor , constant: CGFloat(-jessicaAlba))
        bottomConstraint.isActive = true

        leadingConstraint = myView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: CGFloat(jessicaAlba))
        leadingConstraint.isActive = true
        trailingConstraint = myView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: CGFloat(-jessicaAlba))
        trailingConstraint.isActive = true
    }
}
4

1 回答 1

1

您应该使用 heightConstraint 而不是 bottomConstraint 来完成这项工作。试试下面的片段。

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {
    var myView = UIView()
    var topConstraint: NSLayoutConstraint!
    var heightConstraint: NSLayoutConstraint!
    var leadingConstraint: NSLayoutConstraint!
    var trailingConstraint: NSLayoutConstraint!
    var jessicaAlba:Float = 50


    override func viewDidLoad() {
        super.viewDidLoad()

        myView.translatesAutoresizingMaskIntoConstraints = false
        myView.backgroundColor = UIColor.orange
        view.addSubview(myView)

        topConstraint = myView.topAnchor.constraint(equalTo: view.topAnchor, constant: CGFloat(jessicaAlba))
        topConstraint.isActive = true
        heightConstraint = myView.heightAnchor.constraint(equalTo: view.heightAnchor , multiplier: 0.5, constant: CGFloat(-jessicaAlba))
        heightConstraint.isActive = true      

        leadingConstraint = myView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: CGFloat(jessicaAlba))
        leadingConstraint.isActive = true
        trailingConstraint = myView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: CGFloat(-jessicaAlba))
        trailingConstraint.isActive = true 
    }
}
于 2019-12-08T05:26:40.143 回答