所需...
由于某种原因,以下操作不起作用:
extension UIView {
func addWordOnRight() {
let l = UILabel()
//l.frame = self.bounds ..?
l.textAlignment = .right
l.text = "blah"
self.addSubview(l)
let m = self.layoutMarginsGuide
l.trailingAnchor.constraint(equalTo: m.trailingAnchor, constant: 0).isActive = true
l.centerYAnchor.constraint(equalTo: m.centerYAnchor, constant: 0).isActive = true
}
}
如果你l.frame = self.bounds,它会神秘地锚定在左边,而不是正确。
答案 0 :(得分:2)
默认情况下,标签的translatesAutoresizingMaskIntoConstraints
设置为true
,因此视图会自动添加约束。添加自己的约束时,这些约束与已添加的约束冲突。 (您应该在控制台中看到很多警告。)
如果您想使用自动布局设置l.translatesAutoresizingMaskIntoConstraints = false
。您的约束现在应该可以正常工作。
如果您还想设置标签的宽度和高度,也可以使用约束设置(仅保留框架)。