我有一个滚动视图被约束拉伸到全屏。我正在尝试使其 4 个 UIView 一个接一个地水平排列。
func createSubViews() {
let colors: [UIColor] = [.systemRed, .systemGreen, .systemYellow, .systemBlue]
for index in 0...3 {
let page = UIView()
page.backgroundColor = colors[index]
pages.append(page)
scrollView.addSubview(page)
setupConstraints(index: index)
}
}
func setupConstraints(index: Int) {
pages[index].translatesAutoresizingMaskIntoConstraints = false
var constraints = [
pages[index].topAnchor.constraint(equalTo: scrollView.topAnchor),
pages[index].bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
pages[index].widthAnchor.constraint(equalToConstant: width/4)
]
if index == 0 {
constraints.append(
pages[index].leadingAnchor.constraint(equalTo: scrollView.leadingAnchor)
)
} else {
constraints.append(
pages[index].leadingAnchor.constraint(equalTo: pages[index - 1].trailingAnchor)
)
}
NSLayoutConstraint.activate(constraints)
}
为什么它不起作用?
不要直接将视图添加到scrollView
@IBOutlet weak var stackView: UIStackView!
var pages: [UIView] = []
func createSubViews() {
let colors: [UIColor] = [.systemRed, .systemGreen, .systemYellow, .systemBlue, .systemGreen, .systemBlue, .systemYellow]
let width = UIScreen.main.bounds.width
for index in 0 ..< colors.count {
let page = UIView()
page.translatesAutoresizingMaskIntoConstraints = false
pages[index].widthAnchor.constraint(equalToConstant: width/4).isActive = true
page.backgroundColor = colors[index]
pages.append(page)
stackView.addArrangedSubview(page)
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句