gpt4 book ai didi

image - 是否可以使用相同的图像通过淡入淡出动画更改图像? (SwiftUI)

转载 作者:行者123 更新时间:2023-12-04 13:15:39 25 4
gpt4 key购买 nike

根据我的逻辑,点击图像的手势应该用淡入淡出动画来改变,但实际结果是图像在没有动画的情况下改变。使用 Xcode 11.3.1、Simulator 13.2.2/13.3 测试是否重要。

附言图像命名为“img1”、“img2”、“img3”等。

enum ImageEnum: String {
case img1
case img2
case img3

func next() -> ImageEnum {
switch self {
case .img1: return .img2
case .img2: return .img3
case .img3: return .img1
}
}
}
struct ContentView: View {
@State private var img = ImageEnum.img1
var body: some View {
Image(img.rawValue)
.onTapGesture {
withAnimation {
self.img = self.img.next()
}
}
}
}

最佳答案

这是使用一个图像的可能方法(用于演示一些使用默认图像的小修改)。用注释标记的重要更改。

demo

enum ImageEnum: String {
case img1 = "1.circle"
case img2 = "2.circle"
case img3 = "3.circle"

func next() -> ImageEnum {
switch self {
case .img1: return .img2
case .img2: return .img3
case .img3: return .img1
}
}
}
struct QuickTest: View {
@State private var img = ImageEnum.img1
@State private var fadeOut = false
var body: some View {
Image(systemName: img.rawValue).resizable().frame(width: 300, height: 300)
.opacity(fadeOut ? 0 : 1)
.animation(.easeInOut(duration: 0.25)) // animatable fade in/out
.onTapGesture {
self.fadeOut.toggle() // 1) fade out

// delayed appear
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
withAnimation {
self.img = self.img.next() // 2) change image
self.fadeOut.toggle() // 3) fade in
}
}
}
}
}

关于image - 是否可以使用相同的图像通过淡入淡出动画更改图像? (SwiftUI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60688925/

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