[英]how to expand & collapse UIView using auto layouts
您可以通過在XiB或layoutSubiews中為view2和view3分配寬度約束來實現這一點,首先將兩個視圖的寬度約束都設置為0,然后當用戶滑動時將每個視圖的寬度約束設置為50並重新布局
self.view2WidthCon.constant = 50
self.view3WidthCon.constant = 50
UIView.animate(withDuration: 0.25,animations:
{
self.view.layoutIfNeeded()
})
如果view2
和view3
將包含子視圖,則將其寬度設置為0
可能會破壞其子視圖約束,從而導致錯誤。
這是UIStackView
的理想用例。 將所有三個視圖( view1
, view2
和view3
)放在水平UIStackView
。 默認情況下,將視圖2和3設置為隱藏。 當用戶向左滑動時,只需顯示視圖2和3( view2.isHidden = false
和view3.isHidden = false
)。
這種方法的優勢在於,如果視圖2和3具有帶有自動布局的子視圖,則在隱藏/顯示視圖時它們不會被破壞。
要添加動畫,只需將其放在動畫塊中:
UIView.animateWithDuration(0.3){
view2.hidden = false // or true
view3.hidden = false // or true
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.