ios – “视图层次结构没有为约束准备”错误Swift 3

ios – “视图层次结构没有为约束准备”错误Swift 3,第1张

概述我正在尝试添加一个按钮并以编程方式设置约束,但我一直收到此错误,无法弄清楚我的代码有什么问题.我在这里看了其他问题但是在我的情况下它们并没有太大帮助. btn.setTitle("mybtn", for: .normal) btn.setTitleColor(UIColor.blue, for: .normal) btn.backgroundColor = UIColor.ligh 我正在尝试添加一个按钮并以编程方式设置约束,但我一直收到此错误,无法弄清楚我的代码有什么问题.我在这里看了其他问题但是在我的情况下它们并没有太大帮助.

btn.setTitle("mybtn",for: .normal)    btn.setTitlecolor(UIcolor.blue,for: .normal)    btn.backgroundcolor = UIcolor.lightGray    vIEw.addSubvIEw(btn)    btn.translatesautoresizingMaskIntoConstraints = false    let left = NSLayoutConstraint(item: btn,attribute: .leftmargin,relatedBy: .equal,toItem: vIEw,multiplIEr: 1.0,constant: 0)    let right = NSLayoutConstraint(item: btn,attribute: .rightmargin,constant: 0)    let top = NSLayoutConstraint(item: btn,attribute: .top,toItem: topLayoutGuIDe,attribute: .bottom,constant: 0)    btn.addConstraints([left,right,top])
解决方法 当 adding constraints到视图时,“[约束]中涉及的任何视图必须是接收视图本身或接收视图的子视图”.你将约束添加到btn,因此它不理解约束引用的视图,因为它既不是btn也不是btn的子视图.如果您向视图添加约束而不是btn,则会解决该错误.

或者甚至更好,正如KhalID所说,使用activate代替,在这种情况下,您无需担心视图层次结构中添加约束的位置:

let btn = UIbutton(type: .system)btn.setTitle("mybtn",for: .normal)btn.setTitlecolor(.blue,for: .normal)btn.backgroundcolor = .lightGrayvIEw.addSubvIEw(btn)btn.translatesautoresizingMaskIntoConstraints = falseNSLayoutConstraint.activate([    btn.leftAnchor.constraint(equalTo: vIEw.leftAnchor),btn.rightAnchor.constraint(equalTo: vIEw.rightAnchor),btn.topAnchor.constraint(equalTo: topLayoutGuIDe.bottomAnchor)])
总结

以上是内存溢出为你收集整理的ios – “视图层次结构没有为约束准备”错误Swift 3全部内容,希望文章能够帮你解决ios – “视图层次结构没有为约束准备”错误Swift 3所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存