我有一个UIImageView,并且(表面上)在为视图分配新图像后,我正在切换按钮的行为。我的问题是,在图像实际出现在屏幕上之前,按钮行为正在切换。以下是我正在看的内容的一个例子:
import UIKit
class MyViewController: UIViewController {
@IBOutlet weak var Image: UIImageView!
@IBOutlet weak var Touch: UIButton!
var touchCounter : UInt8 = 0
var touchStart : Bool = true
var touchCount : Bool = false
func start() {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
self.Image.image = UIImage(named: "MyStartImage")
self.touchCount = false
}
}
func end() {
self.Image.image = nil
}
@IBAction func screenTouch(_ sender: Any) {
if self.touchCount == true {
self.touchCounter += 1
} else if touchStart == true {
self.touchStart = false
self.touchCount = true
self.start()
} else {
self.end()
}
}
问题是,如果我只是在屏幕上按下mash,我从未真正看到过该图像。在图像实际显示在屏幕上之后是否有一些执行代码块的方法?我理想地寻找一种非常精确的解决方案。实际上这个代码是在实时线程中执行的,我在查询图像视图到我的图像和切换按钮的行为之间查询mach_absolute_time()。