【发布时间】:2021-11-30 13:35:32
【问题描述】:
我正在尝试制作包含 12x7 带边距的 UIView 的 UIView。我认为最好的方法是制作 7 个垂直堆栈,然后将它们全部添加到一个大的水平堆栈上。我对其进行了编码,但问题是这个水平堆栈根本没有出现在屏幕上(我已经尝试过 Xcode 功能来查看图层,但什么也没有)。
这是我的代码:
import UIKit
class CalendarView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
private func setupView() {
// array to add in future in columnsStackView
var columnStacks: [UIStackView] = []
for columns in 1...12 {
// array to add in future in columnStackView
var columnViews: [UIView] = []
for cell in 1...7 {
let cellView = UIView(frame: CGRect(x: 0, y: 0, width: 24, height: 24))
cellView.backgroundColor = .orange
columnViews.append(cellView)
}
// create columnStackView and add all 7 views
let columnStackView = UIStackView(arrangedSubviews: columnViews)
columnStackView.axis = .vertical
columnStackView.distribution = .fillEqually
columnStackView.alignment = .fill
columnStackView.spacing = 4
columnStacks.append(columnStackView)
}
// create columnsStackView and add those 12 stacks
let columnsStackView = UIStackView(arrangedSubviews: columnStacks)
columnsStackView.axis = .horizontal
columnsStackView.distribution = .fillEqually
columnsStackView.alignment = .fill
columnsStackView.spacing = 4
columnsStackView.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(columnsStackView)
}
}
你能帮帮我吗!!!
【问题讨论】:
-
堆栈视图使用自动布局来排列它们的子视图。你必须提供约束。
标签: ios swift uiview uistackview programmatically-created