2017-09-21 75 views
0

我有3個標籤的單元格。標籤對單元格和其他標籤有約束。如果我從超級視圖中刪除Label2,那麼我將失去約束,我的單元格將被更改。當我刪除Label2時,如何以編程方式在Label1和Label3之間添加約束。 Cell如何將限制programmaticaly添加到xib

+0

IO9 +搖滾與UIStackView –

回答

1

在這裏,你有兩個選擇

1)使用UIStackView必須是IOS9 +

2)約束

UIStackView答案已經給出,所以我建議你第2個辦法做到這一點

類似我已經實現了水平排列的標籤

按照以下步驟

1)假設你的標籤是L1,L2, L3,給相同的高度到每個標籤(請拖動L2,和L3至L1和給予同等高度)

2)設置相等的高度約束優先

3)如在你的情況L2是可選的(可以被隱藏或按您的場景刪除),從而得到HEIGHT約束到L2具有恆定優先(YOUR CONSTRAINTS NEVER BREAK

4)就拿IBOutlet中該約束

5),並給予領導尾隨頂部底部無論你在我的情況下,需要的是0

6)現在你只需要改變優先級時,你需要顯示隱藏標籤

func setupViewForMyMemoriams(){ 
     self.priority_Width_L2.priority = UILayoutPriorityDefaultLow 
     // OR 
     self.priority_Width_L2.priority = UILayoutPriorityRequired 
} 

希望這對您有所幫助

0

使用UIStackView,它會自動調整高度。

另一種方法是不去除Label2,但使高度變爲0,將Label2放在一個UIView中,該UIView從頂部Label2到Label3具有高度,然後將該UIView的高度更改爲0,可見它將被Label2移除

相關問題