2013-06-12 21 views
1

我知道隱藏UILabel的兩種方式。我可以將alpha設置爲0,或將標籤屬性'hidden'設置爲YES。那就是隱藏UILabel而不消耗任何空間

// UILabel *label = ... 
label.alpha = 0.0f; 

// or 
label.hidden = YES; 

但是在這兩種情況下,標籤都會佔用空間(寬度和高度)。

是否可以隱藏標籤,使其不會佔用任何垂直/水平空間?我想一個可能的方法是將寬度/高度設置爲0。但也許有更好的辦法。

+0

你是指佔用空間的是什麼?如果它隱藏,那麼你看不到它,因此它不佔用任何空間。如果你完全想要它的屏幕,但我想你可以將它移動到屏幕邊界之外。 – Groot

+1

那你爲什麼不用'[label removeFromSuperview];'? –

+0

@Filip是的,你不能看到它,但後來的內容不會向上移動。在我看來,這看起來像是一個缺口。 – kukudas

回答

1

那麼您可以將幀高度值設置爲0來隱藏標籤[使用自動佈局?這可能是不夠的,如果你把它正確]

沒有自動佈局,移動下方向上的內容,它依賴於編程設定的內容的框架之下,以新的幀[更改所有組件y valueyvalue-label.height]

2

我只是有這個問題,並發現你必須設置文本爲空字符串,以使其不佔用空間。 (iOS 9)

label.text = @""; 
label.hidden = YES; 

iOS有這麼多的錯誤。

2

處理此問題的最簡單方法是使用堆棧視圖。將標籤嵌入到堆棧視圖中,堆棧視圖將在內部處理間距。像對齊,間距等其他屬性可以根據需要調整。請確保您重新建立堆棧視圖和相鄰元素之間的約束,因爲一旦視圖添加到堆棧視圖中,如果其約束被清除,所有視圖都會被刪除