2017-05-22 54 views
0

我已经通过编程创建了一个堆栈视图,并且我添加了一个编程创建的视图。但是当我尝试添加第二个视图时,它不起作用。 这里是我的代码:Stackview不会追加第二个视图

@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]) 
    } 

但是,如果我运行的应用程序不会显示第二种观点,那只能说明其中的一个。

非常感谢你,我真的很感谢任何形式的帮助

回答

0

尝试添加CODEVIEW {1,2}堆栈视图第一然后添加codeStackViewcodingScrollView

此外,在做任何约束之前一定要设置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) 
+0

它仍然只显示一个视图,但谢谢 –

+0

但奇怪的是,堆栈视图并没有居中 –