【问题标题】:I want to disable a "post" button and enable it again once an image has been selected?我想禁用“发布”按钮并在选择图像后再次启用它?
【发布时间】:2018-08-07 02:46:53
【问题描述】:

如果用户没有选择要发布的图片,我会尝试禁用我的发布按钮,到目前为止,我只是在文本字段没有被编辑的情况下才设法禁用它。我也有两个按钮,按钮一:丢失,按钮二:找到。用户也需要点击其中一个。如果这两个按钮都没有被点击,是否也可以禁用发布按钮?

这是我目前的代码!

func handleBlancInformation(){
    address.addTarget(self, action: #selector(PostViewController.textFieldDidChange), for: UIControlEvents.editingChanged)
    breed.addTarget(self, action: #selector(PostViewController.textFieldDidChange), for: UIControlEvents.editingChanged)
    phone.addTarget(self, action: #selector(PostViewController.textFieldDidChange), for: UIControlEvents.editingChanged)
}

@objc func textFieldDidChange() {
    guard let address = address.text, !address.isEmpty, let breed = breed.text, !breed.isEmpty, let phone = phone.text, !phone.isEmpty
        else {
        postButton.setTitleColor(UIColor.lightText, for: UIControlState.normal)
            postButton.isEnabled = false
            return
    }
    postButton.setTitleColor(UIColor.white, for: UIControlState.normal)
    postButton.isEnabled = true
}

【问题讨论】:

  • 显示选择图片的代码
  • 按钮不是“可选择的”所以我们到底在说什么?
  • @objc func handleSelectPhoto() { let pickerController = UIImagePickerController() pickerController.delegate = self pickerController.sourceType = UIImagePickerControllerSourceType.photoLibrary pickerController.allowsEditing = true self.present(pickerController, animated: true, completion:无)}
  • extension PostViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate { func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { print("did Finish Picking Media") if let image = info["UIImagePickerControllerOriginalImage “] 作为? UIImage { selectedImage = image imagePosted.image = image } self.dismiss(animated: true, completion: nil) } }
  • 嘿,马特!抱歉,轻拍了。但我的问题仍然存在,是否可以在点击两个按钮之一之前禁用该按钮?

标签: swift button uiimage isenabled disable


【解决方案1】:
func handleBlancInformation(){
    address.addTarget(self, action: #selector(PostViewController.textFieldDidChange), for: .valueChanged)
    breed.addTarget(self, action: #selector(PostViewController.textFieldDidChange), for: .valueChanged)
    phone.addTarget(self, action: #selector(PostViewController.textFieldDidChange), for: .valueChanged)
}

试试这个代码,我已经改变了 addTarget 事件,所以它会起作用:)

【讨论】:

  • 嘿马赫什!谢谢回复。我已经工作过的代码,但我的问题是如何禁用发布按钮,直到选择了一张图片并点击了一个按钮?最好的问候:)
猜你喜欢
  • 2012-06-11
  • 2014-07-25
  • 2012-04-18
  • 2021-09-10
  • 1970-01-01
  • 2016-07-15
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多