我UIButton
在情节提要中设置了自动布局约束。我也有一个UIView
我使用UIViewController
的viewDidLoad
方法发起的。我使该视图具有(几乎)与相同的所有属性,UIButton
但是当我在模拟器中运行该视图时,它不会“粘”在按钮上。这是我所拥有的:
class ViewController: UIViewController {
@IBOutlet weak var someButton: UIButton!
func viewDidLoad() {
super.viewDidLoad()
let someView = UIView()
someView.backgroundColor = UIColor.greenColor()
someView.frame = someButton.bounds
someView.frame.origin = someButton.frame.origin
someView.autoresizingMask = someButton.autoresizingMask
someView.autoresizesSubviews = true
someView.layer.cornerRadius = someButton.layer.cornerRadius
someView.clipsToBounds = true
someView.userInteractionEnabled = false
view.insertSubview(someView, belowSubview: someButton)
}
}
我想我缺少someView
.auto布局约束?
编辑:我认为访问UIButton
的约束会起作用,但它们似乎是一个空数组。故事板约束是否被隐藏?
someView.addConstraints(someButton.constraints)
谢谢。
以这种方式复制约束失败,因为:
除了复制约束之外,还可以简化约束并创建新约束并引用按钮:
let someView = UIView()
someView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(someView)
view.addConstraints([
NSLayoutConstraint(item: someView, attribute: .Leading, relatedBy: .Equal, toItem: someButton, attribute: .Leading, multiplier: 1, constant: 0),
NSLayoutConstraint(item: someView, attribute: .Trailing, relatedBy: .Equal, toItem: someButton, attribute: .Trailing, multiplier: 1, constant: 0),
NSLayoutConstraint(item: someView, attribute: .Top, relatedBy: .Equal, toItem: someButton, attribute: .Top, multiplier: 1, constant: 0),
NSLayoutConstraint(item: someView, attribute: .Bottom, relatedBy: .Equal, toItem: someButton, attribute: .Bottom, multiplier: 1, constant: 0)
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句