gpt4 book ai didi

swift - 在 UIImage 出现在屏幕上后执行 block

转载 作者:行者123 更新时间:2023-11-28 07:48:42 26 4
gpt4 key购买 nike

我有一个 UIImageView,并且(表面上)在为 View 分配新图像后,我正在切换按钮的行为。我的问题是按钮行为在图像实际出现在屏幕上之前被切换。以下是我正在查看的示例:

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()
}
}

问题是,如果我只是按下按钮混合屏幕,我实际上看不到图像。在图像实际显示在屏幕上后,是否有一些方法可以执行一段代码?理想情况下,我正在寻找一种非常精确的解决方案。这段代码实际上是在实时线程中执行的,我在将 ImageView 分配给我的图像和切换按钮的行为之间查询 mach_absolute_time() 。

最佳答案

实现的逻辑有问题。你可能想做这样的事情

var loadingImage = false

func start() {
loadingImage = true
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
self.Image.image = UIImage(named: "MyStartImage")
self.loadingImage = false
}
}

func end() {
if loadingImage == false {
Image.image = nil
}
}

关于swift - 在 UIImage 出现在屏幕上后执行 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50265951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com