通过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 } } } }