Отключить button2, если button1 не нажата - PullRequest
0 голосов
/ 22 мая 2019

Я хочу отключить button2, если button1 не нажата, и включить ее, когда button1 нажата. Проблема в том, что button2 отключена, даже если я уже нажал кнопку1. Я не получаю никакой ошибки, я использую Swift4 в Xcode10.

Вот мой код:

class ViewController: UIViewController {

  @IBOutlet weak var btn1: UIButton!
  @IBOutlet weak var btn2: UIButton!

  override func viewDidLoad() {
     super.viewDidLoad()

     intro()

     btn1.setImage(UIImage(named: "checked.png"), for: .selected)
     btn1.setImage(UIImage(named: "unchecked.png"), for: .normal)
  }

  @IBAction func button1(_ sender: UIButton) {
     UIView.animate(withDuration: 0.5, delay: 0.1, options: .curveLinear, animations: {
        sender.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
    }) { (success) in
     UIView.animate(withDuration: 0.5, delay: 0.1, options: .curveLinear, animations: {
            sender.isSelected = !sender.isSelected
            sender.transform = .identity
        }, completion: nil)
      }
   }



   func intro() {
      if btn1.isSelected == true {
        btn2.isUserInteractionEnabled = true
      } else {
        btn2.isUserInteractionEnabled = false
      }
   }

}

Я также попробовал этот код:

func intro() {
    if btn1.isTouchInside == true {
      btn2.isUserInteractionEnabled = true
    } else {
      btn2.isUserInteractionEnabled = false
    }
  }

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Я думаю, что сначала вы хотите, чтобы button2 была отключена, а когда вы нажимаете на button1, она должна быть включена.

Для этого сделайте

 override func viewDidLoad() {
     super.viewDidLoad()

     btn1.setImage(UIImage(named: "checked.png"), for: .selected)
     btn1.setImage(UIImage(named: "unchecked.png"), for: .normal)
     btn2.isenable = false

   }

 @IBAction func button1(_ sender: UIButton) {

    if sender.isSelected == true 
        {
         btn2.isenable = true
        }
       else 
       {
         btn2.isenable = false
        }

   }
0 голосов
/ 22 мая 2019

Добавьте любой из приведенных ниже кодов в ваш viewDidLoad()

 btn2.isEnabled = false

или

btn2.isUserInteractionEnabled = false

и измените действие кнопки как,

@IBAction func button1(_ sender: UIButton) {

    if btn1.isSelected == true {
      btn2.isUserInteractionEnabled = true
    } else {
      btn2.isUserInteractionEnabled = false
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...