我想停用按钮,直到动画完成。我希望它在动画结束时处于活动状态。
我写了以下内容,但没有奏效。它立即激活。
import SwiftUI
struct ContentView: View {
@State private var scale: CGFloat = 1
@State private var isDisable = false
var body: some View {
VStack {
Button(
action: {
isDisable = true
withAnimation(
.linear(duration: 1)
) {
scale = scale - 0.1
isDisable = false
}
},
label: {
Text("Tap Me")
}
)
.disabled(
isDisable
)
RectangleView().scaleEffect(
scale
)
}
}
}
struct RectangleView: View {
var body: some View {
Rectangle().fill(
Color.blue
)
.frame(
width:200,
height: 150
)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
添加延迟。
{
isDisable = true
withAnimation(
.linear(duration: 1)
) {
scale = scale - 0.1
}
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { //< Here
isDisable = false
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句