SwiftUI Asymmetri c Задержка перехода не работает - PullRequest
1 голос
/ 06 апреля 2020

Я пытаюсь создать анимацию для представления и отклонения группы объектов. У меня есть:

if self.showSignInButtons {
    Group {
        Button(action: {}) { ... }
        HStack { ... }
        Button(action: {}) { ... }
    }.transition(
        AnyTransition.signInButtonTransition(
        offset: geometry.size.height,
        duration: 1.4,
        delay: 50.0)
    )
}

Вот определение пользовательской AnyTransition анимации

public extension AnyTransition {

    static func signInButtonTransition(offset: CGFloat, duration: Double, delay: Double) -> AnyTransition {
        let insertion = AnyTransition.offset(y: offset)
            .animation(Animation.easeOut(duration: duration).delay(delay))
        let removal = AnyTransition.offset(y: offset).animation(.default)
        return .asymmetric(insertion: insertion, removal: removal)
    }
}

Моя цель - отложить анимацию вставки для создания последовательности, но я не хочу, чтобы была задержка, когда представление отклонено. Проблема в том, что анимация asymmetri c использует анимацию по умолчанию, несмотря на добавленный модификатор анимации. Есть ли какая-либо причина, по которой анимация задержки и длительности на вставке игнорируется?

...