[英]Swift, constraint, UILabel, anchor right
期望中的...
由於某種原因,以下不起作用:
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,它會神秘地錨定在左邊,而不是正確。
默認情況下,標簽將translatesAutoresizingMaskIntoConstraints
設置為true
,因此視圖會自動添加約束。 添加自己的約束時,這些約束與已添加的約束沖突。 (您應該在控制台中看到很多警告。)
如果要使用autolayout set l.translatesAutoresizingMaskIntoConstraints = false
。 您的約束現在應該正常工作。
如果您還想設置標簽的寬度和高度,也可以使用約束設置(僅保留框架)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.