我是來自Android背景的iOS新手。iOS Swift - 如何隱藏UIView元素並聲明空間?
將.hidden = true應用於UIView時,它隱藏起來,但仍然佔用它的空間。有沒有辦法來要求這個空間視圖時採用的是Android消失(類似於setVisibility(View.GONE)?
感謝
我是來自Android背景的iOS新手。iOS Swift - 如何隱藏UIView元素並聲明空間?
將.hidden = true應用於UIView時,它隱藏起來,但仍然佔用它的空間。有沒有辦法來要求這個空間視圖時採用的是Android消失(類似於setVisibility(View.GONE)?
感謝
如果你是針對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
有很多方法可以實現這一點。這只是一個例子。
沒有可見性設置。但你可以將alpha設置爲0
如果我可以給你+2我會,相信我:)謝謝你解決了我的問題。 –
爲我工作2 :) thnx –