Явные анимации с использованием только модификатора .animation не работают - PullRequest
0 голосов
/ 17 октября 2019

Я играю со SwiftUI и заметил, что код из этого урока Apple не работает, как положено. Я хочу, чтобы анимация применялась для scaleEffect, но не для rotationEffect, но выполнение этого, как это сделано в упомянутом учебнике, не работает - когда добавлено .animation(nil), анимация вообще отсутствует. Это ошибка или я что-то не так делаю?

struct ContentView: View {
      @State private var showDetail = false

    var body: some View {
        Button(action: {
            self.showDetail.toggle()
        }) {
            Image(systemName: "chevron.right.circle")
                .imageScale(.large)
                .rotationEffect(.degrees(showDetail ? 90 : 0))
                .animation(nil)
                .scaleEffect(showDetail ? 1.5 : 1)
                .padding()
                .animation(.easeInOut(duration: 2))
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

1 Ответ

1 голос
/ 17 октября 2019

Просто поместите .animation перед .rotationEffect, и он не будет применен к эффекту

Image(systemName: "chevron.right.circle")
                .imageScale(.large)
                .scaleEffect(showDetail ? 1.5 : 1)
                .padding()
                .animation(.easeInOut(duration: 2))
                .rotationEffect(.degrees(showDetail ? 90 : 0))
...