2015-12-28 65 views
0
@IBAction func addNewImage(sender: UIButton) { 
    let rect = CGRectMake(0, 0, 30, 30) 
    let myView = UIView(frame: rect) 
    myView.backgroundColor = UIColor.greenColor() 
    myView.alpha = 1.0 
    myStackView.addArrangedSubview(myView) 
} 

上面的這段代碼只是一個按鈕觸發的操作。我只想添加一個新的UIViewUIStackView這在這裏命名爲myStackView,最後我發現stackView重新佈局所有arrangedViews但新添加的視圖無法看到,我不知道爲什麼。UIView動態添加時,UIStackView無法顯示UIView

謝謝你在下面給出的很好的答案。

回答

0

試試這個,

@IBAction func buttonPressed(sender: AnyObject) { 

    let rect = CGRectMake(0, 0, 30, 30) 
    let myView = UIView(frame: rect) 
    myView.backgroundColor = UIColor.greenColor() 
    myView.alpha = 1.0 
    myView.heightAnchor.constraintEqualToConstant(20).active = true 
    myView.widthAnchor.constraintEqualToConstant(20).active = true 
    myStackView.addArrangedSubview(myView) 

} 

它應該工作。

+0

謝謝你的回答,它確實效果不錯,但我仍然想知道爲什麼它與此有關,我已經宣佈「myView」的寬度和高度,但爲什麼我必須添加更多? –

+0

您將不得不爲UIStackView的子視圖顯式地提供約束,而忽略我們指定的框架。接受答案,如果它幫助你解決你的問題。 – satheeshwaran