Я пробую некоторые анимационные материалы из учебных пособий Apple по SwiftUI. В разделе Добавление анимации к отдельным представлениям написано:
Цвет, прозрачность, поворот, размер и другие свойства представления могут быть анимированными.
Но когда я попытался анимировать цвет изображения с помощью модификатора foregroundColor(_:)
с помощью переключения значения свойства State
, он, похоже, на самом деле не анимировался. Ради исследования я добавил длительность анимации.
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))
}
}
}
В приведенном выше коде изменение цвета orange <<->> gray
происходит немедленно. Однако эффект вращения действительно уважает анимацию и он тоже интерактивен.
По сути не дубликат:
Я сталкивался с подобным вопросом SwiftUI: Цвет анимации текста - foregroundColor () , но этоо Text
компонент. Поэтому я предполагаю, что это не прямой дубликат.
И на сайте разработчика недостаточно документации о foregroundColor (_:) , поэтому я предполагаю, что цитата в уроках должна быть источником правды.
Итак, мой вопрос, является ли это ошибкой или преднамеренным поведением?