如何解决如何在自定义 UIView 中添加约束?
我想给 UILabel 添加约束 我的自定义 UIView 类:
class LabelView: UIView {
public var label: UILabel = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
self.frame = frame
prepareUI()
}
func prepareUI() {
self.label.text = "SOME TEXT"
self.label.sizeToFit()
self.label.adjustsFontSizeToFitWidth = true
self.label.textAlignment = .center
self.addSubview(self.label)
self.translatesAutoresizingMaskIntoConstraints = false
self.label.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
self.label.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
self.label.widthAnchor.constraint(equalTo: self.widthAnchor,multiplier: 0.5).isActive = true
self.label.heightAnchor.constraint(equalTo: self.heightAnchor,multiplier: 0.2).isActive = true
}
}
运行后出现以下错误,UILabel位于UIView的左上角:
2021-02-13 02:32:26.698694+1000 SwiftHello[96793:1625524] [LayoutConstraints] 无法同时满足约束。 可能以下列表中的至少一项约束是您不想要的。 试试这个: (1) 查看每个约束并尝试找出您不期望的; (2) 找到添加不需要的约束或约束的代码并修复它。 (注意:如果您看到 NSAutoresizingMaskLayoutConstraints 不明白,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档) ( "<0x600000606c10 h="--&" v="--&" uilabel:0x142616930.minx="=" names:><0x600000606c60 h="--&" v="--&" uilabel:0x142616930.width="="><0x6000006061c0 uilabel:0x142616930.centerx="=" swifthello.labelview:0x1426167c0.centerx><0x600000606300 uilabel:0x142616930.width="=">0x600000606300>0x6000006061c0>0x600000606c60>0x600000606c10>
将尝试通过打破约束来恢复<0x6000006061c0 uilabel:0x142616930.centerx="=" swifthello.labelview:0x1426167c0.centerx>0x6000006061c0>
在处创建一个符号断点以在调试器中捕获它。
将尝试通过打破约束来恢复<0x6000006062b0 uilabel:0x142616930.centery="=" swifthello.labelview:0x1426167c0.centery>0x6000006062b0>
在处创建一个符号断点以在调试器中捕获它。
将尝试通过打破约束来恢复<0x600000606300 uilabel:0x142616930.width="=">0x600000606300>
在处创建一个符号断点以在调试器中捕获它。
将尝试通过打破约束来恢复<0x600000606350 uilabel:0x142616930.height="=">0x600000606350>
在处创建一个符号断点以在调试器中捕获它。
解决方法
您缺少这一行:
您已将其设置在上,但未设置在标签上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。