2015-10-19 129 views

回答

10

如果你是針對iOS的9或更高版本,可以使用UIStackView完成這種自動(類似於LinearLayout在Android)。當你設置包含在一個UIStackView隱藏視圖,剩下的意見將轉移到回收空間。

您可以動畫移位通過設置view.hidden = true動畫的內通過使用

UIView.animateWithDuration(_:delay:options:animations:completion:) 

等。

如果您的iOS版本低於9(其中UIStackView不受支持),那麼您必須在您隱藏或顯示視圖時手動更新自動佈局約束。

例如,假設你有彼此堆疊,叫廠景,視圖2和視圖3的頂部3次,你首先調用

view2TopConstraint.active = false 
view3TopConstraint.active = false 

刪除視圖2和視圖3的主要約束,然後添加一個頂部約束視圖3被固定到視圖的底部1

let newView2TopConstraint = NSLayoutConstraint(item: view3, attribute: .Top, relatedBy: .Equal, toItem: view1, attribute: .Bottom, multiplier: 1.0, constant: 0.0) 
newView2TopConstraint.active = true 

有很多方法可以實現這一點。這只是一個例子。

+1

如果我可以給你+2我會,相信我:)謝謝你解決了我的問題。 –

+1

爲我工作2 :) thnx –

1

沒有可見性設置。但你可以將alpha設置爲0