2017-05-22 56 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

但奇怪的是,堆棧視圖並沒有居中 –