Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用foregroundColor设置图像颜色动画不会';实际上,我们不能以交互方式设置动画_Swift_Swiftui - Fatal编程技术网

Swift 使用foregroundColor设置图像颜色动画不会';实际上,我们不能以交互方式设置动画

Swift 使用foregroundColor设置图像颜色动画不会';实际上,我们不能以交互方式设置动画,swift,swiftui,Swift,Swiftui,我正在试用苹果的SwiftUI教程中的一些动画素材。该节说: 视图的颜色、不透明度、旋转、大小和其他属性都可以设置动画 但是,当我尝试通过切换State属性的值,使用foregroundColor(:)修改器设置图像颜色的动画时,它似乎没有实际设置动画。为了便于调查,我增加了动画的持续时间,使其更长 struct ContentView: View { @State var isFavorite = false var body: some View { Bu

我正在试用苹果的SwiftUI教程中的一些动画素材。该节说:

视图的颜色、不透明度、旋转、大小和其他属性都可以设置动画

但是,当我尝试通过切换
State
属性的值,使用
foregroundColor(:)
修改器设置图像颜色的动画时,它似乎没有实际设置动画。为了便于调查,我增加了动画的持续时间,使其更长

struct ContentView: View {

    @State var isFavorite = false

    var body: some View {
        Button(action: {
            withAnimation(.easeInOut(duration: 5)) { self.isFavorite.toggle() }
        }) {
            Image(systemName: "star.fill")
                .imageScale(.large)
                .foregroundColor(self.isFavorite ? .orange : .gray)
                .rotationEffect(.degrees(self.isFavorite ? 360 : 0))
        }
    }
}
在上述代码中,立即发生颜色变化
橙灰色
。但是,旋转效果确实尊重动画,而且也是交互式的


基本上不是重复的:

我遇到了一个类似的问题,但那是关于
Text
组件的。所以我认为这不是一个直接的复制品


开发人员网站上没有足够的文档,所以我认为教程中的引用应该是事实的来源

所以我的问题是这是一个bug还是一个故意的行为?

看看这个:AnimatableModifier可能是解决这个问题的方法。。。