【问题标题】:How to stop ios button from functioning until a particular condition is met?如何在满足特定条件之前停止 ios 按钮的功能?
【发布时间】:2016-11-27 07:45:08
【问题描述】:

我有一个保存图像按钮,用于在拍摄新图像或在应用程序内导入和修改现有照片后将图像保存到照片库。

但是,如果在未拍摄或将图像加载到应用程序的情况下按下保存图像按钮,它会由于无法保存图像而挂起并变得无响应。

关于在加载图像之前我需要什么来阻止按钮运行的任何建议?

//Save Image Button Function
@IBAction func saveImage(_ sender: AnyObject) {
    let imageData = UIImageJPEGRepresentation(photoViewer.image!, 1.0)
    let compressedJPGImage = UIImage(data: imageData!)
    UIImageWriteToSavedPhotosAlbum(compressedJPGImage!, nil, nil, nil)
    let alert = UIAlertView(title: "Saved!",
                            message: "Your image has been saved to Photo Library!",
                            delegate: nil,
                            cancelButtonTitle: "Ok")
    alert.show()

【问题讨论】:

  • 这篇文章可能有你的答案:stackoverflow.com/questions/25524638/disable-a-button-on-swift如果你发布一些代码,我们可能会给你一个更具体的解决方案。
  • 您好 Nicko,感谢您的回复。我实际上并不想完全禁用该按钮,因为稍后将需要它。这是我为这个特定按钮提供的代码: //保存图像按钮功能 @IBAction func saveImage(_ sender: AnyObject) { let imageData = UIImageJPEGRepresentation(photoViewer.image!, 1.0) let compressedJPGImage = UIImage(data: imageData!) UIImageWriteToSavedPhotosAlbum(compressedJPGImage!, nil, nil, nil) let alert = UIAlertView(title: "Saved!", message: "Your image has been saved to Photo Library!", delegate: nil, cancelButtonTitle: "Ok") alert.show ()
  • 您好 DSpooner,没关系,通过再次将属性设置为 true,仍可以随时重新启用该按钮。查看下面@MShahmeer 的回复,他们指出了将其初始化为false 的位置以及再次将其设置为true 的位置。

标签: ios iphone xcode swift2 ios9


【解决方案1】:

首先,在viewDidLoad 中,禁止按钮被按下:

button.enabled = false

然后,使用条件 if 语句检查图像是否已加载到应用程序中。如果有,请通过以下方式重新启用按钮:

button.enabled = true

【讨论】:

  • 谢谢@Nicko 和@MShahmeer,这对swift 2.2 确实有效,但是对于swift 3,这已经稍微改变了'button.isEnabled = false'
  • 啊,是的,没错。为疏忽道歉!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
相关资源
最近更新 更多