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