У меня есть 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()
}
}
Проблема в том, что если я просто нажимаю на экран, я никогда не вижу изображение. Есть ли какой-нибудь метод для выполнения блока кода после того, как изображение действительно появляется на экране? Я в идеале ищу решение, которое будет очень точным. Этот код в действительности выполняется в потоке реального времени, и я запрашиваю mach_absolute_time () между назначением представления изображения для моего изображения и переключением поведения кнопки.