禁用并启用UIButton - XCode Swift

时间:2014-11-18 01:20:55

标签: xcode swift uibutton

我创建了一个生成随机数的应用程序,用户必须输入猜测并单击按钮,GUESS才能提交。一切都很好。但是,我只是尝试启动禁用btnGuess的应用程序,并在启动新游戏时启用。当用户赢得游戏时,该按钮也将被禁用。到目前为止,我已经在网上和在这里搜索了你如何禁用/启用UIButton以及我找到的每个答案(最值得注意的是:button.enabled = false)似乎不起作用。请让我知道我在这里缺少什么。我也尝试过button.enabled = NO; (这是另一个不适用于我的解决方案)。感谢。

import UIKit

class myViewController: UIViewController {

var guesses : UInt = 0
var number : UInt32 = 0
var inputGuess = 0


@IBOutlet weak var lblGuesses: UILabel!

@IBOutlet weak var lblGuessTitle: UILabel!

@IBOutlet weak var lblOutput: UILabel!

@IBOutlet weak var txtInput: UITextField!

@IBAction func txtInput(sender: UITextField){

}

override func viewDidLoad() {
    super.viewDidLoad()

    txtInput.enabled = false
    // btnGuess.enabled = false    //doesnt work



    // Do any additional setup after loading the view.
}

func generateRandom() -> UInt32{
    return arc4random_uniform(100) + 1
}

func incrementGuesses(){
    ++guesses
    lblGuesses.text = String(guesses)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func btnGuess(sender: UIButton) {

    let inputGuess = txtInput.text.toInt()

    if UInt32(inputGuess!) > number{
        lblOutput.text = "Too High!"
        incrementGuesses()
    }
    else if UInt32(inputGuess!) < number{
        lblOutput.text = "Too Low!"
        incrementGuesses()
    }else{
        lblOutput.text = "Correct Guess! You Win!"
        guesses = 0
        txtInput.text = ""
        txtInput.enabled = false
        //btnGuess.enabled = false  //doesnt work

    }
}


@IBAction func btnStart(sender: UIButton) {

    number = generateRandom()
    lblOutput.text = "I'm thinking of a number between 0 - 100"
    lblGuesses.text = "0"
    txtInput.enabled = true
    //btnGuess.enabled = true  //doesnt work
}

}

4 个答案:

答案 0 :(得分:1)

您引用的变量(btnGuess)在此代码中声明为函数:

@IBAction func btnGuess(sender: UIButton) {

您可能希望将操作功能的名称更改为@IBAction func guess(sender: UIButton),然后声明@IBOutlet weak var btnGuess: UIButton!属性。

答案 1 :(得分:0)

这是因为btnGuess是一个函数,而不是一个变量。

更改此代码:

@IBAction func btnGuess(sender:UIButton)

要:

@IBAction func btnGuessClicked(Sender:UIButton)

并为btnGuess制作一个@IBOutlet。

答案 2 :(得分:0)

我的建议是创建一个:

@IBOutlet weak var btnGuess: UIButton!

在您的视图控制器中也附加到相同的按钮,并在代码中添加相关的行:

btnGuess.enabled = false

这应该为你做的伎俩

答案 3 :(得分:0)

您具有按钮设置功能(操作),但无法参考按钮的实际外观。

您需要在课程顶部为按钮添加更多IBOutlets:

import UIKit

class myViewController: UIViewController {

  @IBOutlet weak var btnStart: UIButton!
  @IBOutlet weak var btnGuess: UIButton!

  @IBAction func btnStart(sender: UIButton) {
     btnGuess.enabled = true
  }

}
相关问题