Создание кнопок появляются и исчезают при нажатии - PullRequest
0 голосов
/ 11 июня 2019

Я играю с UIButton и свойством isHidden.Я пытаюсь сделать следующее:

  • Запустите приложение с помощью button1.
  • Нажмите button1.
  • Если button2 невидим, покажите его.
  • Иначе, заставить его исчезнуть.

Если нажата button2, заставить button1 исчезнуть или появиться, в зависимости от того, виден ли он.

КогдаЯ нажимаю button1 при запуске, button2 никогда не появляется.Нужно ли что-то обновить контроллер вида, чтобы показать новую доступную кнопку?

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var button1: UIButton!
    @IBOutlet weak var button2: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        button2.isHidden = true

    }

    @IBAction func clickButton1() {
        if button2.isHidden == true {
            button2.isHidden = false
        }
        else { button2.isHidden = true}
    }

    @IBAction func clickButton2() {
        if button1.isHidden == false {
            button1.isHidden = true
        }
        else {button1.isHidden = false}
    }
}

Ответы [ 3 ]

0 голосов
/ 11 июня 2019

Проверьте свои розетки и .xib / раскадровку. Может быть, вы просто забыли связать просмотр и связанное с ним действие.

Также вы можете упростить методы.

Изменяет это

 if self.button1.isHidden == false {
    self.button1.isHidden = true
 }
 else {
    self.button1.isHidden = false
 }

к этому

self.button1.isHidden = !self.button1.isHidden
0 голосов
/ 11 июня 2019

Вы можете попробовать вот так:

    class ViewController: UIViewController {

    @IBOutlet var Btn1: UIButton!
    @IBOutlet var Btn2: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        Btn1.addTarget(self, action: #selector(Button1Pressed(_:)), for: .touchUpInside)
        Btn2.addTarget(self, action: #selector(Button2Pressed(_:)), for: .touchUpInside)
        Btn2.isHidden = true

    }

    @objc func Button1Pressed(_ sender: Any) {
        print("Button1Pressed")
        Btn2.isHidden.toggle()
    }
    @objc func Button2Pressed(_ sender: Any) {
        print("Button2Pressed")
        Btn1.isHidden.toggle()
    }
}
0 голосов
/ 11 июня 2019

Каждое изменение, которое вы делаете в пользовательском интерфейсе, вы должны выполнить в основном потоке, чтобы вы могли попробовать что-то вроде этого ...

@IBAction func clickButton1() {
        DispatchQueue.main.async {
            if self.button2.isHidden == true {
                self.button2.isHidden = false
            }
            else {
                self.button2.isHidden = true
            }

        }
    }

    @IBAction func clickButton2() {
        DispatchQueue.main.async {
            if self.button1.isHidden == false {
                self.button1.isHidden = true
            }
            else {
                self.button1.isHidden = false

            }
        }
    }

Надеюсь, это поможет вам ...

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