我正在努力复习我的UIKit
,但我想不明白为什么在try 在其中添加一些自定义视图时我的堆栈视图间距如此小.我在过go 的一些项目中try 过这种堆栈视图大小,但它们并不一样,这意味着在我的其他项目中,堆栈视图间距显示预期的间距为10,与之相反,当我在下面的代码上设置10间距时,几乎没有任何间距.
class ViewController: UIViewController {
private lazy var vStackView: UIStackView = {
let stack = UIStackView(arrangedSubviews: [customButtonOne, customButtonTwo])
stack.translatesAutoresizingMaskIntoConstraints = false
stack.axis = .vertical
stack.distribution = .fill
stack.spacing = 10
return stack
}()
private lazy var customButtonOne: CustomView = {
let button = CustomView()
return button
}()
private lazy var customButtonTwo: CustomView = {
let button = CustomView()
button.buttonView.setTitle("This is button two", for: .normal)
return button
}()
init() {
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
configure()
}
func configure() {
view.addSubview(vStackView)
NSLayoutConstraint.activate([
vStackView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
vStackView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])
}
}
这就是自定义按钮视图内部的内容:
class CustomView: UIView {
lazy var buttonView: UIButton = {
let button: UIButton = UIButton()
button.translatesAutoresizingMaskIntoConstraints = false
button.backgroundColor = .systemBlue
button.setTitle("Hello World", for: .normal)
button.layer.cornerRadius = 8
//button.configuration = buttonConfig
return button
}()
override init(frame: CGRect) {
super.init(frame: frame)
translatesAutoresizingMaskIntoConstraints = false
addSubview(buttonView)
setupView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupView() {
NSLayoutConstraint.activate([
buttonView.centerXAnchor.constraint(equalTo: centerXAnchor),
buttonView.centerYAnchor.constraint(equalTo: centerYAnchor)
])
}
}