【发布时间】:2020-01-09 22:44:07
【问题描述】:
我一直在尝试为 UI 的各个部分制作动画,但您似乎无法为 SwiftUI 文本的前景颜色制作动画?我想在状态改变时平滑地切换一些文本的颜色。如果我为文本周围视图的背景颜色设置动画效果,这很好用,但前景色不起作用。有没有人有幸为这样的变化制作动画?不确定这是 Xcode 测试版错误还是预期的功能...
Text(highlightedText)
.foregroundColor(color.wrappedValue)
.animation(.easeInOut)
// Error: Cannot convert value of type 'Text' to closure result type '_'
【问题讨论】:
-
快速提问?您可以在
UIKit中执行此操作吗? (老实说,我不知道。)我猜您在 SwiftUI 中可以做的事情很少,而目前在 UIKit 中是做不到的。 -
@dfd 快速回答。是的,你可以。
-
@MojtabaHosseini,然后我会说发布 UIKit 代码并让 OP 将其转换为
UIViewRepresentable。 -
@dfd 为了反对者,我提出了一个不使用
UIKit的解决方案。 -
我在 reddit 上找到了这个答案,它为我解决了这个问题:reddit.com/r/SwiftUI/comments/hxbdns/… 基本上,添加这个: .foregroundColor(.clear) .overlay(Rectangle() .foregroundColor(color.wrappedValue) .mask(文本(highlightedText)))