首页 > 解决方案 > 如何显示一秒钟的图像?斯威夫特

问题描述

我想在玩家达到目标时显示一秒钟的图像。我想过发出警报,但它会减慢游戏速度。我只想让图像在屏幕顶部停留一秒钟,然后消失,直到下一个成就。

示例代码如下:

var TapNumber = 0

func ScoreUp() {

TapNumber += 1

 if TapNumber == 100 {
 showImage()
 }
}


func showImage() {
 // this is the function I want to create but. I do not know how
 show image("YouEarnedAPointImage") for one second
}

标签: swiftuidisplay

解决方案


这是可能方法的演示

演示

struct DemoShowImage1Sec: View {
    @State private var showingImage = false
    var body: some View {
        ZStack {
            VStack {
                Text("Main Content")
                Button("Simulate") { self.showImage() }
            }
            if showingImage {
                Image(systemName: "gift.fill")
                    .resizable()
                    .frame(width: 100, height: 100)
                    .background(Color.yellow)
            }
        }
    }

    private func showImage() {
        self.showingImage = true
        DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
            self.showingImage = false
        }
    }
}

推荐阅读