0

我正在尝试通过添加具有视觉格式的约束来在我的 UITableViewController 上添加简单的红色视图。这是我的代码(在 viewDidLoad 中调用):

private func setupMenuBar() {

    let myView = UIView()
    myView.backgroundColor = UIColor.red
    view.addSubview(myView)

    view.addConstraintsWithFormat(format: "H:|[v0]|", views: myView)
    view.addConstraintsWithFormat(format: "V:|[v0]|", views: myView)

这是我对 UIView 类的扩展:

extension UIView {
    func addConstraintsWithFormat(format: String, views: UIView...) {
        var viewsDictionary = [String: UIView]()
        for (index, view) in views.enumerated() {
            let key = "v\(index)"
            view.translatesAutoresizingMaskIntoConstraints = false
            viewsDictionary[key] = view
        }

        addConstraints(NSLayoutConstraint.constraints(withVisualFormat: format, options: NSLayoutFormatOptions(), metrics: nil, views: viewsDictionary))
    }

在我的另一个空 testViewController:UIViewController 上工作正常,没有任何子视图。正如您在图片上看到的,这里没有任何红色视图: 应用层次结构

在函数结束时我有零帧: 控制台

4

0 回答 0