如何在swift中隐藏/显示按钮

我正在尝试使用if语句在标签显示特定状态时隐藏按钮,并在标签显示其他内容时显示。 标签的名称是Status,当它显示"Closed" ,我想隐藏它,当它显示"Open" ,它会出现。

 var query3 = PFQuery(className:"Status_of_game") query3.findObjectsInBackgroundWithBlock{ (namelist3: [AnyObject]!, error : NSError!) -> Void in for list3 in namelist3 { var output = list3["StatusType"] as String self.Status.text = output println(output) if self.Status.text == "Closed" { Purchase().enable = false } } } 

正如@LAmasse所说,你想使用button.hidden = truebutton.hidden在Swift 3中被重命名为button.isHidden

你发布的代码没有意义。

 if self.Status.text == "Closed" { Purchase().enable = false } 

什么是购买? 从大写的名字来看,它似乎是一个阶级。 如果是这样,表达式Purchase()可能会创建Purchase类的新实例,这没有任何意义。 你为什么打电话? 如果这是创建一个新的Purchase对象,那么该代码是没有意义的。 (您将在if语句中创建一个新对象,该对象将在下一行中被丢弃,因为您没有对它进行强引用。)

您想为按钮设置IBOutlet并在Interface Builder中连接它。

声明可能如下所示:

 Class MyViewController: UIViewController { @IBOutlet weak var theButton: UIButton! //The rest of your view controller's code goes here } 

如果sockets连接到您的按钮,则代码行左侧应该有一个填充圆圈。 它看起来像这样:

在此处输入图像描述

然后显示/隐藏按钮的代码可能如下所示:

 func showQueryResults { var query3 = PFQuery(className:"Status_of_game") query3.findObjectsInBackgroundWithBlock() { (namelist3: [AnyObject]!, error : NSError!) -> Void in for list3 in namelist3 { var output = list3["StatusType"] as String self.Status.text = output println(output) if output == "Closed" { theButton.isHidden = false //changed to isHidden for Swift 3 } } } } 

我不清楚你为什么要循环查询所有结果,并且如果任何结果的“StatusType”是==“已关闭”,则显示按钮。

最后,我对解析不是很熟悉。 如果未在主线程上调用findObjectsInBackgroundWithBlock方法的完成块,则必须更改该代码以在主线程上进行UI更新。

编辑:

我已经知道Parse在主线程上执行其完成处理程序,因此您不必担心来自Parse完成处理程序的UI调用。

SWIFT 3

我创建了一个IBOutlet:loadingBDLogo

以显示:

loadingBDLogo.isHidden = false

隐藏:

self.loadingBDLogo.isHidden = true

在Swift中隐藏按钮的示例代码:

 import UIKit class ViewController: UIViewController { // Create outlet for both the button @IBOutlet weak var button1: UIButton! @IBOutlet weak var button2: UIButton! override func viewDidLoad() { super.viewDidLoad() //Set button2 hidden at start button2.isHidden = true } //Here is the action when you press button1 which is visible @IBAction func button1(sender: AnyObject) { //Make button2 Visible button2.isHidden = false } } 

如果要保留对它的引用,则必须使UIButton成为该类的属性。 然后,您可以使用self.takePhotoButton访问它。