Stackview 不附加第二个视图
Posted
技术标签:
【中文标题】Stackview 不附加第二个视图【英文标题】:Stackview doesn't append second view 【发布时间】:2017-05-22 06:19:57 【问题描述】:我以编程方式创建了一个堆栈视图,并添加了一个我以编程方式创建的视图。但是当我尝试添加第二个视图时它不起作用。 这是我的代码:
@IBOutlet weak var codingScrollView: UIView!
let codeStackView = UIStackView()
var codeViews = [CodeView]()
let codeView1 = CodeView(name: "Lennart", date: "13/05/2002", code: "Just some code")
let codeView2 = CodeView(name: "Nina", date: "01/07/1999", code: "Also some code")
codingScrollView 是我添加到 UIScrollView 的内容视图。 codeStackView 是我之前描述过的那个 codeViews 数组用于将视图添加到 stackview。
这里是 viewDidLoad 方法:
codeViews.append(codeView1)
codeViews.append(codeView2)
codingScrollView.addSubview(codeStackView)
codingScrollView.backgroundColor = UIColor(red: 226/255, green: 226/255, blue: 226/255, alpha: 1)
codeStackView.centerXAnchor.constraint(equalTo: codingScrollView.centerXAnchor)
codeStackView.centerYAnchor.constraint(equalTo: codingScrollView.centerYAnchor)
codeStackView.translatesAutoresizingMaskIntoConstraints = false
codeStackView.spacing = 10
codeStackView.axis = .horizontal
codeStackView.alignment = .center
for i in 0...codeViews.count - 1
codeStackView.addSubview(codeViews[i])
codeStackView.addArrangedSubview(codeViews[i])
但如果我运行该应用程序,它不会显示第二个视图,它只会显示其中一个。
非常感谢,我真的很感谢任何帮助
【问题讨论】:
【参考方案1】:尝试先将 codeView1,2 添加到堆栈视图,然后将 codeStackView
添加到 codingScrollView
。
另外,请务必在进行任何约束之前设置codeStackView.translatesAutoresizingMaskIntoConstraints = false
。
codeViews.append(codeView1)
codeViews.append(codeView2)
for i in 0...codeViews.count - 1
codeStackView.addSubview(codeViews[i])
codeStackView.addArrangedSubview(codeViews[i])
codeStackView.translatesAutoresizingMaskIntoConstraints = false
codeStackView.centerXAnchor.constraint(equalTo: codingScrollView.centerXAnchor)
codeStackView.centerYAnchor.constraint(equalTo: codingScrollView.centerYAnchor)
codeStackView.spacing = 10
codeStackView.axis = .horizontal
codeStackView.alignment = .center
codingScrollView.addSubview(codeStackView)
codingScrollView.backgroundColor = UIColor(red: 226/255, green: 226/255, blue: 226/255, alpha: 1)
【讨论】:
但奇怪的是堆栈视图根本没有居中以上是关于Stackview 不附加第二个视图的主要内容,如果未能解决你的问题,请参考以下文章
stackView 中的 StackView 不能通过 swift 使用它的间距