簡體   English   中英

如何使用自動布局擴展和折疊UIView

[英]how to expand & collapse UIView using auto layouts

在此處輸入圖片說明

這是我UITableViewCell內部的結構,當用戶從右向左滑動時, view1移動並且view2view3對用戶可見,因為view1覆蓋了view2view3

我試圖在view1移動時折疊並展開view2view3 ,但view2view3最大寬度應為50。如何使用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()
})

如果view2view3將包含子視圖,則將其寬度設置為0可能會破壞其子視圖約束,從而導致錯誤。

這是UIStackView的理想用例。 將所有三個視圖( view1view2view3 )放在水平UIStackView 默認情況下,將視圖2和3設置為隱藏。 當用戶向左滑動時,只需顯示視圖2和3( view2.isHidden = falseview3.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM