【发布时间】:2020-12-12 19:10:27
【问题描述】:
当我改变方向时,闪闪发光的 SF 符号开始上下移动。上下动画应该只执行一次(在外观上)。我尝试过使用verticalSizeClass,但是没有帮助。
它的工作方式:在外观上,文本和 SF 符号向上移动,然后 Sparkle SF 符号向上和向下缩放。
这是它在方向变化时的外观和行为:
struct ContentView: View {
@State private var offsetY: CGFloat = 150
@State private var opacityAmount: Double = 0
@State private var animationAmount: CGFloat = 1
var body: some View {
VStack {
HStack {
Image(systemName: "sparkle").foregroundColor(.yellow)
.offset(y: offsetY)
.opacity(opacityAmount)
.animation(
Animation.easeOut(duration: 0.5).delay(0.1)
)
.scaleEffect(animationAmount)
.animation(Animation.easeInOut(duration: 1).repeatForever(autoreverses: true))
Text("All new design").font(.largeTitle)
.offset(y: offsetY)
.opacity(opacityAmount)
.animation(
Animation.easeOut(duration: 0.5).delay(0.1)
)
}
.onAppear {
offsetY = 0
opacityAmount = 0.8
animationAmount = 2
}
}
}
}
【问题讨论】:
标签: swift animation layout swiftui