按下按钮后更改图像,然后在5秒后让图像恢复原始状态

时间:2016-03-10 03:42:49

标签: ios swift uibutton

所以我是Swift的新手。我正在通过视频教程一步一步地学习它。然而,在每个教程中,我尝试制作非常简单的应用程序来重新强化我正在学习的内容,而且我正在慢慢移动,以便我可以保留我正在学习的内容。

关注我的问题!我创建了一个非常简单的应用程序,它只是一个放在图像上的按钮,当按下按钮时,图像会发生变化。然后按下重置按钮,它将返回原始图像。我想要的是让用户按下按钮然后更改图像,5秒后它会自动更改回原始图像,"没有重置按钮"用户必须按。我怎么能以一种非常简单的方式做到这一点?

仅供参考我在屏幕上有几个按钮,因此我想在此时单独为每个按钮执行此操作,因为我了解更多我将重新访问此项目并学习创建一个我可以随时调用的单个函数这样做,这样可以创建更清晰的代码。但是在跑步之前我走了。

好的,这就是我目前的代码。如何将其添加到其中?

@IBOutlet weak var bkgrdImage: UIImageView!
@IBOutlet weak var yellowDesktopImage: UIImageView!
@IBOutlet weak var greenDesktopImage: UIImageView!
@IBOutlet weak var yellowExpanded: UIImageView!
@IBOutlet weak var greenExpanded: UIImageView!
@IBOutlet weak var yellowButton: UIButton!
@IBOutlet weak var greenButton: UIButton!


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func learnYellow(sender: AnyObject) {
        bkgrdImage.hidden = false


   yellowDesktopImage.hidden = true
    greenDesktopImage.hidden = true
    yellowExpanded.hidden = false
    greenExpanded.hidden = true
    yellowButton.hidden = true
    greenButton.hidden = true 
}

那么我在哪里/如何添加这段代码?

imageView.image = newImage //change to the new image

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (Int64)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), {
    imageView.image = originalImage //change back to the old image after 5 sec
});

1 个答案:

答案 0 :(得分:3)

按钮按下功能中的类似内容应该可以完成工作:

课程上方import Dispatch

imageView.image = newImage //change to the new image

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (Int64)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), {
    imageView.image = originalImage //change back to the old image after 5 sec
});