SwiftUI - Анимация изменения размера рамки просмотра

Как анимировать размер представления, чтобы 9X_animation оно могло увеличиваться или уменьшаться 9X_swiftui-bug в зависимости от высоты кадра? Мне нужно 9X_size перейти между двумя известными измерениями.

9
0
2
Общее количество ответов: 2

Ответ #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 люди могли дать более конкретный ответ.

12
0

Ответ #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 
            }
        }
    }

7
0