我制作了一个简单的代码来澄清我的问题。当我在我的iPhone上运行我的应用程序时,它可以正常工作,但当我按下主页按钮 - 在模拟器或我的真实iPhone上 - 再次按下应用程序图标时,应用程序运行,但应用程序的按钮“TestButtonAction不起作用。相同当我按下电源/睡眠按钮并再次打开时出现问题。 同样的问题,当我双击主页按钮并通过滑动窗口终止我的应用程序,并再次重新运行按钮不起作用或在控制台中打印“右图” 这是我的代码,谢谢。
//
// ViewController.swift
// TestingHomeButton
//
// Created by Samuel Oncy on 4/25/18.
// Copyright © 2018 Samuel Oncy. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var TestButtonOutlet: 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 TestButtonAction(_ sender: UIButton) {
if(TestButtonOutlet.imageView?.image == UIImage(named:"NatureView")){
print("Right Image")
}
}
}
答案 0 :(得分:4)
简单地使UIImage全局变量,如果要在If中进行比较。
其他方式也可以解决同样的问题 - 标签是正确的。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var TestButtonOutlet: UIButton!
var image = UIImage (named: "NatureView")
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 TestButtonAction(_ sender: UIButton) {
// print(TestButtonOutlet.imageView?.image == UIImage(named:"NatureView"))
if (TestButtonOutlet.currentImage == image) {
print(TestButtonOutlet.currentImage)
}
}
}
答案 1 :(得分:0)
要检查按钮的当前图像,请使用currentImage
属性,如下所示: -
@IBAction func TestButtonAction(_ sender: UIButton) {
if sender.currentImage.isEqual(UIImage(named: "NatureView")) {
print("Right Image")
}
}