我想创建一个看起来像这样的UIView:
我希望此视图始终将其自身调整为其中的文本。我试过这样的事情:
import UIKit
@IBDesignable class TagView: UIView {
@IBInspectable var tagTitle: String?
override func awakeFromNib() {
super.awakeFromNib()
setUpView()
}
func setUpView() {
let label = UILabel()
label.text = tagTitle
addSubview(label)
layer.cornerRadius = 15
frame = CGRect(origin: frame.origin, size: sizeThatFits(label.frame.size))
}
}
但这根本不会改变视图的frame
。我认为原因是启用了自动布局。
我能做些什么来达到这个效果?我是从错误的角度来看待这个吗?
答案 0 :(得分:0)
尝试使用setUpView()方法的代码
func setUpView() {
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
label.center = CGPoint(x: 160, y: 285)
label.text = tagTitle
label.layer.masksToBounds = true
label.layer.cornerRadius = 15
self.view.addSubview(label)
}
答案 1 :(得分:0)
尝试将视图的宽度约束添加到与标签相等的宽度。同样适用于身高。