如果未单击button1,请禁用button2

时间:2019-05-22 05:38:28

标签: ios swift uibutton

如果未单击button1,我想禁用button2,并在单击button1时启用它。问题是,即使我已经单击了button1,button2也被禁用。我没有收到任何错误,我正在Xcode10中使用Swift4。

这是我的代码:

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 :(得分:0)

在您的viewDidLoad()

中添加以下任何代码
 btn2.isEnabled = false

btn2.isUserInteractionEnabled = false

并将按钮操作更改为

@IBAction func button1(_ sender: UIButton) {

    if btn1.isSelected == true {
      btn2.isUserInteractionEnabled = true
    } else {
      btn2.isUserInteractionEnabled = false
    }
  }

答案 1 :(得分:0)

我认为首先要禁用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
        }

   }