簡體   English   中英

如何快速隱藏/顯示按鈕

[英]how to hide/show a button in 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 = true button.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
}

如果插座連接到您的按鈕,則代碼行左側應該有一個實心圓圈。 它看起來像這樣:

在此處輸入圖片說明

然后您顯示/隱藏按鈕的代碼可能如下所示:

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”為 ==“Closed”時顯示按鈕。

最后,我對解析不是很熟悉。 如果在主線程上沒有調用 findObjectsInBackgroundWithBlock 方法的完成塊,您將必須更改該代碼以在主線程上更新 UI。

編輯:

從那以后,我了解到 Parse 在主線程上執行其完成處理程序,因此您無需擔心來自 Parse 完成處理程序的 UI 調用。

斯威夫特 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 訪問它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM