我正在通过继承默认组件来在Swift中开发自定义组件。下面有一块我的代码:以编程方式向自定义组件添加约束条件
class DirectionButton: UIButton {
var backgroundImage: UIImageView!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
styleComponent()
}
override init(frame: CGRect) {
super.init(frame: frame)
styleComponent()
}
func styleComponent() {
backgroundImage = UIImageView(image: UIImage(named: "seta-proximo"))
backgroundImage.contentMode = .ScaleAspectFit
self.setNeedsLayout()
self.layoutIfNeeded()
self.addSubview(backgroundImage)
let imageConstraints = NSLayoutConstraint(item: self, attribute: .TrailingMargin, relatedBy: .Equal, toItem: self, attribute: .Trailing, multiplier: 1, constant: 10)
backgroundImage.addConstraint(imageConstraints)
}
}
的backgroundImage
变量需要从按钮的右边部分10分,这就是为什么我需要的约束。
运行后我得到了这样的异常:视图层次结构没有为约束做好准备。
如何正确添加约束?
可以使用锚属性而不是nslayout约束 –
没弄明白该怎么做...... – juniorgarcia
@AjayBeniwal见我的答案...... – juniorgarcia