2012-01-25 42 views
2

正如標題中所述,我有一個應用程序與兩個UILabels在對方之下。如果我想以編程方式隱藏到頂部,可以使用myLabel.hidden = true。兩個UILabels在彼此下面,隱藏頂部一個

如果我在Android中執行此操作(使用myLabel.setVisibility(View.Gone);),此標籤下的標籤將向上移動。

但是,如果我爲iOS做的,標籤是隱藏的,但仍然有一個空的空間,而不是標籤。

enter image description here

任何想法,我怎麼能解決這個問題?

+0

什麼是我們想看到的截圖?你也確定你有兩個標籤? – 2012-01-25 14:24:14

+0

@Vince嗯,當然有三個標籤。如果我隱藏第二個,第三個應該放在第一個之下。 在屏幕截圖中,如果您隱藏標籤,則可以看到空白區域。 – harmjanr

+0

標籤不會自動向上移動,請更改其「框架」來執行此操作。 – 2012-01-25 14:35:11

回答

2

下隱藏的第二個,得到它的框架,隱藏它,改變第三的框架性質:

CGRect secondFrame = secondLabel.frame; 
secondLabel.hidden = YES; 
thirdLabel.frame = secondFrame; 
+0

這的確行得通,謝謝。 但重點是:我有8個標籤在彼此之下。每個標籤內容可以是空的,如果它是空的,則不應顯示。 這意味着我必須改變相當多的幀.. =/ – harmjanr

+0

對不起,不知道細節。當然這種情況有點複雜,你將不得不想象這種機制。這裏的一般想法是標籤不會自動向上移動,即使它們是空的或隱藏的 – 2012-01-25 14:43:01

+0

@harmjanr for iOS只需重建包含所有標籤的視圖(如果其中一個標籤發生更改) –

0

做這樣的事情:

[UIView animateWithDuration:0.3 
       animations:^{label1.alpha = 0; 
           label2.frame = label1.frame} 
       completion:NULL];