我是SwiftUI的新手,我正在尝试制作一个简单的动画。这是我想要的: 屏幕上的一个按钮,单击时会显示一些文本。
我正在使用AnyTransition.offset
和AnyTransition.animation
API来控制动画延迟5秒。但是单击后它就会显示出来。如果我将AnyTransition.offset
更改为AnyTransition.opacity
,它将开始起作用。为什么?这是代码,非常简单。
import SwiftUI
struct ContentView: View {
@State private var show = false
var body: some View {
VStack {
Spacer()
if show {
Text("AAAA")
.transition(
AnyTransition
.offset(x: 100, y: 100)
// .opacity
.animation(
Animation
.easeInOut(duration: 1)
.delay(5)
)
)
}
Spacer()
Button("Click") {
self.show.toggle()
}
.padding()
}
}
}
答案 0 :(得分:0)
这就是我想要的:当屏幕上有一个按钮时 单击,将显示一些文本。
为什么要这么复杂?只需使用opacity
修饰符来检查状态,然后在其后加上animation
。
查看此处:
struct ContentView: View {
@State private var show = false
var body: some View {
VStack {
Spacer()
//Opacity that checks if show is true/ false and an animation on the text
Text("AAAA").opacity(self.show ? 1 : 0).animation(.easeIn)
Spacer()
Button("Click") {
self.show.toggle()
}
.padding()
}
}
}
产生这个:
答案 1 :(得分:0)