Переходное масштабирование текста в Swiftui, когда предыдущий плавный переход заканчивается для того же текста
У меня есть два текста в представлении SwiftUI и два@State
обертки. Когда появляется вид, первый текст виден, а второй нет. Через несколько секунд первый текст исчезнет, а второй текст должен появиться одновременно. Все идет нормально. Теперь вот моя проблема... после того, как второй текст исчезает, через несколько секунд тот же второй текст с именемText("HELLO FROM THE OTHER SIDE")
приходится уменьшать масштаб. Это проблема, которая у меня есть. Как мне изменить код, чтобы я мог вызвать переход уменьшения масштаба, называемыйTextZoomOutTransition
также? Вот код:
import SwiftUI
struct Transitions: View {
@State changeText: Bool
@State zoomText: Bool
private var TextFadeOut: AnyTransition {
.opacity
.animation(
.easeOut(duration: 0.3)
)
}
private var TextFadeIn: AnyTransition {
.opacity
.animation(
.easeIn(duration: 0.3)
)
}
private var TextZoomOutTransition: AnyTransition {
return .asymmetric(
insertion: .opacity,
removal: .scale(
scale: 1000, anchor: UnitPoint(x: 0.50, y: 0.45))
.animation(
.easeInOut(duration: 2.0)
.delay(0.1)
)
)
}
public var body: some View {
ZStack(alignment: .center) {
Color.clear
VStack(spacing: 24) {
if !changeText {
Text("HELLO THERE")
.transition(TextFadeOut)
} else if !zoomText {
Text("HELLO FROM THE OTHER SIDE")
.transition(TextFadeIn)
}
}
}
.onAppear {
zoomText = false
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
changeText = true
}
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
zoomText = true
}
}
}
}