gpt4 book ai didi

ios - “无法安装约束”,原因 : 'No common superview between views

转载 作者:行者123 更新时间:2023-11-28 12:44:52 25 4
gpt4 key购买 nike

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()
}

}

为什么会显示这个错误?还有其他方法可以执行此操作吗?有什么建议吗? center.equalTo 造成了这个错误。我是 swift 的新手,正在尝试实现 SnapKit 框架

最佳答案

这意味着您的 View 或任何 Controller 应该在公共(public) View 中。例如, View A 有两个按钮,比如 X 和 Y, View B 有两个按钮 P 和 K,那么您可以设置 P 和 K 的约束,以尊重它的 super View B 而不是相对于 View A。

如果有多个 super View ,那么请确保您已为每个 super View 提供适当的约束。那么只会满足端点 View 的约束。

乌达特:

首先在容器中添加框,在其父 View 中添加容器,然后设置约束。并确保您分别在 self.containercontainercontainer viewbox view 中居中。如果您正在设置 top,bottom,leading and trailing 那么也不需要设置居中!

希望这会有所帮助:)

关于ios - “无法安装约束”,原因 : 'No common superview between views,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com