2015-05-04 38 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