SwiftUI—使用withAnimation制作缩放和渐隐动画
2020-07-14 本文已影响0人
anny_4243
原文链接:https://github.com/fzhlee/SwiftUI-Guide#-%E7%AC%AC2%E8%8A%82opacitylinear-
通过scaleEffect、opacity和withAnimation方法,实现linear类型的缩放动画,并设置动画的时长为1秒,制作一份缩放和渐隐同时进行的动画效果
示例代码:
struct ContentView : View {
@State var factor: Double = 1 //图像视图的缩放比例
@State var alpha: Double = 1 //图像视图的不透明度
var body: some View {
Image("logo")
.scaleEffect(CGFloat(factor))
.opacity(alpha) //按照浮点属性的大小修改图像视图的不透明度
.onTapGesture { //给图像视图绑定单点的手势,当用户点击图像视图时执行后面的代码
withAnimation(.linear(duration: 1.0)) { //设置动画的时间曲线为线型,动画的时长为1秒
self.factor += 0.1 //将图像放大到1.1倍
self.alpha -= 0.2 //将图像不透明度减少0.2
}
}
}
}