как заставить другую кнопку появиться, если я нажал одну кнопку в Swift - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь создать игру, в которой, если я нажимаю кнопку, она может породить другую кнопку в другой области, чтобы вы могли нажимать и продолжать делать это, каждый раз, когда вы нажимаете кнопку, вы должны получать очко.Я не знаю, как создать другую кнопку, когда я нажал одну кнопку.

// это код

var monkeyPosition: Int = 1

class ViewController: UIViewController{

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = UIColor(white: 0.25, alpha: 1.0)
        view.backgroundColor = UIColor(white: 0.25, alpha: 1.0)
    view.addSubview(makeButtonSpawn())
    view.addSubview(makeButtonSpawn2())

}



@IBAction func monkeyPlayer(_ sender: UIButton) {
    if sender.tag == 1 && (monkeyPosition == 1) {
        makeButtonSpawn2().isHidden = false

    }


}



func makeButtonSpawn() -> UIButton {

    let monkey = UIButton(type: UIButton.ButtonType.system)
    //Set a frame for the button. Ignored in AutoLayout/ Stack Views
    monkey.frame = CGRect(x: 30, y: 30, width: 90, height: 90)
    monkey.backgroundColor = UIColor.blue

    makeButtonSpawn().isHidden = true
    return monkey
}

func makeButtonSpawn2() -> UIButton {
    let monkey = UIButton(type: UIButton.ButtonType.system)
    //Set a frame for the button. Ignored in AutoLayout/ Stack Views
    monkey.frame = CGRect(x: 80, y: 80, width: 90, height: 90)
    monkey.backgroundColor = UIColor.blue
 makeButtonSpawn2().isHidden = true
    return monkey

}

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Создайте переменные экземпляра для ваших кнопок, тогда вы сможете получить к ним доступ из мест в вашем классе. Также вы можете установить его свойства в закрытии переменной вместо объявления метода

class ViewController: UIViewController {

    var button1: UIButton = {
        let button = UIButton()
        button.frame = CGRect(x: 30, y: 30, width: 90, height: 90)
        button.backgroundColor = .blue
        return button
    }()

    var button2: UIButton = {
        let button = UIButton()
        button.frame = CGRect(x: 80, y: 80, width: 90, height: 90)
        button.backgroundColor = .blue
        button.isHidden = true
        return button
    }()
}

Далее вам нужно добавить свои кнопки в качестве подпредставлений к основному view, и вам нужно добавить цель для них

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = UIColor(white: 0.25, alpha: 1.0)
    view.backgroundColor = UIColor(white: 0.25, alpha: 1.0)
    view.addSubview(button1)
    view.addSubview(button2)
    button1.addTarget(self, action: #selector(button1Pressed(_:)), for: .touchUpInside)
    button2.addTarget(self, action: #selector(button2Pressed(_:)), for: .touchUpInside)
}

@objc func button1Pressed(_ sender: UIButton) {

}

@objc func button2Pressed(_ sender: UIButton) {

}

Наконец, вы можете отобразить вторую кнопку при нажатии первой кнопки

@objc func button1Pressed(_ sender: UIButton) {
    if monkeyPosition == 1 {
        button2.isHidden = false
    }
}
0 голосов
/ 26 марта 2019

Заставляет селектор перейти к другой функции, которая создает функцию и добавляет точку.Используйте метод de selector и не забудьте поставить @objc перед этой функцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...