SwiftUI - Анимация изменения размера рамки просмотра
Как анимировать размер представления, чтобы 9X_animation оно могло увеличиваться или уменьшаться 9X_swiftui-bug в зависимости от высоты кадра? Мне нужно 9X_size перейти между двумя известными измерениями.
Ответ #1
Ответ на вопрос: SwiftUI - Анимация изменения размера рамки просмотра
Я точно не знаю, что вам нужно, но вот очень 9X_size простой пример с Rectangle
, который масштабируется, когда 9X_scaleanimation вы нажимаете Button
:
struct ContentView: View { @State var animate = false var body: some View { VStack { Button(action: { withAnimation { self.animate.toggle() } }, label: { Text("Animate") }) Rectangle() .foregroundColor(.blue) .frame(width: self.animate ? 100 : 150, height: self.animate ? 60 : 90) } } }
Добавьте код к следующему 9X_rotateanimation вопросу или отредактируйте вопрос, чтобы 9X_size люди могли дать более конкретный ответ.
Ответ #2
Ответ на вопрос: SwiftUI - Анимация изменения размера рамки просмотра
Поскольку withAnimation { }
анимирует все, что связано с 9X_scaleanimation изменениями состояния внутри замыкания, мы 9X_scaleanimation можем использовать модификатор .animation()
для анимации 9X_view определенного.
struct ContentView: View { @State var animate = false var body: some View { VStack { Button(action: { self.animate.toggle() }, label: { Text("Animate") }) Rectangle() .foregroundColor(.blue) .frame(width: animate ? 100 : 150, height: animate ? 60 : 90) .animation(.default) //you can change the animation you need } } }
-
1
-
17
-
18
-
1
-
1
-
14
-
1
-
1
-
8
-
7
-
4
-
3
-
3
-
3
-
1
-
2
-
2
-
1
-
3
-
1
-
7
-
5
-
2
-
5
-
1
-
2
-
1
-
4
-
1
-
7
-
5
-
2
-
4
-
6
-
2
-
5
-
8
-
3
-
7
-
8
-
2
-
4
-
6
-
2
-
8
-
8
-
3
-
6
-
10
-
3