import UIKit
import SnapKit
class RecordButton: UIView {
let box = UIView()
let container = UIView()
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
func setup() {
container.snp_makeConstraints { (make) -> Void in
make.width.equalTo(200)
make.height.equalTo(200)
make.center.equalTo(self.container)
}
box.snp_makeConstraints { (make) -> Void in
make.top.equalTo(container).offset(50)
make.left.equalTo(container).offset(50)
make.bottom.equalTo(container).offset(-50)
make.right.equalTo(container).offset(-50)
make.center.equalTo(container)
}
self.addSubview(container)
container.addSubview(box)
setColor()
}
func setColor() {
self.container.backgroundColor = UIColor.blackColor()
self.box.backgroundColor = UIColor.orangeColor()
}
}
为什么会出现此错误?有没有其他方法来执行此操作?有什么建议吗? centre.equalTo会创建此错误。我是swift并尝试实现SnapKit框架的新手
答案 0 :(得分:2)
这意味着您的视图或任何控制器应该在同一视图中。 例如,有视图A有两个按钮,例如X和Y,视图B有两个按钮P和K,那么你可以设置P和K的约束,它不受视图A的影响而超出它的超视图B. / p>
如果有多个超级视图,请确保您已为每个超级视图提供了适当的约束。那么只会满足端点视图的约束。
<强> Uodate:强>
首先在容器和容器中添加框,然后设置约束。并确保您分别以self.container
和container
为container view
和box view
。如果您正在设置top,bottom,leading and trailing
,那么也不需要设置中心!
希望这会有所帮助:)