Image 是否可以使用相同的图像更改淡入淡出动画的图像?(迅捷)

Image 是否可以使用相同的图像更改淡入淡出动画的图像?(迅捷),image,animation,swiftui,fading,Image,Animation,Swiftui,Fading,根据我的逻辑,点击图像的手势应该随着淡入动画而改变,但实际结果是图像在没有动画的情况下改变。如果重要,则使用Xcode 11.3.1、模拟器13.2.2/13.3进行测试 PS图像被命名为“img1”、“img2”、“img3”等 下面是使用一个图像的可能方法(对于演示,使用默认图像进行了一些小的修改)。用注释标记的重要更改 enum ImageEnum:String{ 案例img1=“1.圆圈” 案例img2=“2.圆圈” 案例img3=“3.圆圈” func next()->ImageEn

根据我的逻辑,点击图像的手势应该随着淡入动画而改变,但实际结果是图像在没有动画的情况下改变。如果重要,则使用Xcode 11.3.1、模拟器13.2.2/13.3进行测试

PS图像被命名为“img1”、“img2”、“img3”等


下面是使用一个图像的可能方法(对于演示,使用默认图像进行了一些小的修改)。用注释标记的重要更改

enum ImageEnum:String{
案例img1=“1.圆圈”
案例img2=“2.圆圈”
案例img3=“3.圆圈”
func next()->ImageEnum{
切换自身{
case.img1:return.img2
case.img2:return.img3
case.img3:return.img1
}
}
}
结构快速测试:视图{
@国家私有变量img=ImageEnum.img1
@国家私有var衰减=假
var body:一些观点{
图像(系统名称:img.rawValue).resizeable().frame(宽度:300,高度:300)
.不透明度(衰减?0:1)
.animation(.easeInOut(持续时间:0.25))//可设置动画的淡入/淡出
.ontapsigne{
self.fadeOut.toggle()//1)淡出
//延迟出现
DispatchQueue.main.asyncAfter(截止日期:.now()+0.25){
动画片{
self.img=self.img.next()//2)更改图像
self.fadeOut.toggle()//3)淡入
}
}
}
}
}

它可以工作,但是为什么如果我使用
with animation
更改
文本的值,即
的值,它会在没有额外修改器的情况下平滑地更改,并且更改
图像
需要一些逻辑?文本的值(即字符串数据)本身是可设置动画的,但图像的名称不是。
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()
                }
            }
    }
}