2015-05-04 80 views
4

我想使用按下按鈕切換幾個UILabel的隱藏狀態。按下按鈕一次,取消隱藏它們,再次按下隱藏標籤,隱藏這些標籤的默認狀態。切換UILabel的隱藏狀態

這裏是我想會的工作(但顯然沒有):

@IBAction func information(sender: AnyObject, forEvent event: UIEvent) 
{ 
    if(infoLocation.hidden = true) 
    { 
     self.infoLocation.hidden = false 
    } 
    else 
    { 
     self.infoLocation.hidden = true 
    } 

    //**********************************// 
    if(infoName.hidden = true) 
    { 
     self.infoName.hidden = false 
    } 
    else 
    { 
     self.infoName.hidden = true 
    } 

    //**********************************// 
    if(infoVersion.hidden = true) 
    { 
     self.infoVersion.hidden = false 
    } 
    else 
    { 
     self.infoVersion.hidden = true 
    } 


} 
+0

什麼不起作用?代碼是否被調用?標籤是否可見?是具體的 – Wain

+0

代碼不工作...標籤應該隱藏/顯示,但不 –

+0

infoLocation.hidden =!infoLocation.hidden這將切換標籤狀態,在你的if,你分配了BOOL而不是用== – Vig

回答

9

爲了使代碼更短的(更好看)我會做這樣的,如果它只是一個切換:

for label in [label1, label2, label3, label4] { 
    label.hidden = !label.hidden 
} 

這將切換label1-4.hidden

6

用戶==裏面,你如果不=

if(infoVersion.hidden == true) 

=是分配。
==是爲了平等。

更新
您可以使用速度比較快的版本代碼的toogle隱藏狀態:

infoVersion.hidden = !infoVersion.hidden; 
5

SWIFT 3.x中,4.x的

for label in [label1, label2, label3, label4] { 
    label.isHidden = !label.isHidden 
} 
+0

所以實際上與一年前的接受答案沒有任何區別:D – Ash

+2

是的,並不是真的,我只是想澄清一下,我們在Swift 3中使用** isHidden **而不是** hidden ** – Trevor

+1

只是爲了更正按照Swift 3.x self.label.isHidden =!label.isHidden – chaitanya

0

斯威夫特4.x的

label.isHidden = true // or false