我有以下自定义UIView:
import UIKit
class CustomView: UIView {
// container view
lazy var contView: UIView = {
let cv = UIView()
cv.backgroundColor = .gray
cv.translatesAutoresizingMaskIntoConstraints = false
cv.layer.cornerRadius = 5
cv.layer.masksToBounds = true
cv.isUserInteractionEnabled = true
return cv
}()
lazy var t: UIImageView = {
let tt = UIImageView()
tt.translatesAutoresizingMaskIntoConstraints = false
tt.isUserInteractionEnabled = false
tt.contentMode = .scaleAspectFill
tt.alpha = 0
return tt
}()
let img: UIImageView = {
let image = UIImageView()
image.backgroundColor = .yellow
image.translatesAutoresizingMaskIntoConstraints = false
image.contentMode = .scaleAspectFill
return image
}()
let ny: UITextView = {
let info = UITextView()
info.translatesAutoresizingMaskIntoConstraints = false
info.backgroundColor = .blue
info.text = "Some, Text"
info.textColor = .white
return info
}()
func setupContView() {
contView.addSubview(img)
contView.addSubview(ny)
img.addSubview(t)
// UIViewAlertForUnsatisfiableConstraints error
contView.widthAnchor.constraint(equalTo: self.widthAnchor, constant: -24).isActive = true
contView.heightAnchor.constraint(equalTo: self.heightAnchor, constant: -200).isActive = true
contView.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
contView.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
t.centerXAnchor.constraint(equalTo: img.centerXAnchor).isActive = true
t.centerYAnchor.constraint(equalTo: img.centerYAnchor).isActive = true
img.centerXAnchor.constraint(equalTo: contView.centerXAnchor).isActive = true
img.centerYAnchor.constraint(equalTo: contView.centerYAnchor).isActive = true
img.widthAnchor.constraint(equalTo: contView.widthAnchor).isActive = true
img.heightAnchor.constraint(equalTo: contView.heightAnchor).isActive = true
ny.leftAnchor.constraint(equalTo: contView.leftAnchor).isActive = true
ny.rightAnchor.constraint(equalTo: contView.rightAnchor).isActive = true
ny.bottomAnchor.constraint(equalTo: contView.bottomAnchor).isActive = true
ny.heightAnchor.constraint(equalToConstant: 50).isActive = true
}
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(contView)
setupContView()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
当我尝试在视图控制器中创建对此CustomView
对象的引用时,如此...
var myCustomView = CustomView()
...没有应用任何约束,也没有出现任何约束。当我尝试在视图控制器中添加约束或CustomView
到中心myCustomView
时,我会收到UnsatisfiableConstraints
个错误。当我在视图控制器中为它们添加颜色时,它们会出现,但我已经在自定义UIView类中执行了这样做,因此它是多余的并且覆盖了我所做的。
我该怎么办?我希望能够创建自定义类的对象并使它们看起来都一样,但我在CustomView
类中创建的约束或自定义视图似乎都没有做任何事情。