赞
踩
最近开发的时候遇到一个问题,带有动画效果的图片放到NavigationView中,页面初始化的时候,图片会从屏幕左上方进入到指定的位置,参考代码如下 :
import SwiftUI struct SAnimalView: View { @State private var isAnimating = false var body: some View { NavigationView{ Image("dog") .rotationEffect(.degrees(isAnimating ? 720:0)) .animation(Animation.easeIn(duration:2)) .onTapGesture { isAnimating.toggle() } } } }
实际上,我只需要实现点击图片,图片旋转的效果,所以图片从左上角进入(进入到屏幕的指定位置的时事件跟(duration:2)设置的时间有关)的效果是不需要的,下面提供一个可去除此效果的方案
在苹果开发者文档找到关于animation参数duration的解释,内容如下截图:
所以将动画的duration参数设置为0或负值,就不会对图片设置动画效果,页面初始化的时候自然就不会出现图片从左上角进入页面的动作,然后在动画 触发执行前,动态修改duration参数修改为既定的正值即可使动画效果正常运行,参考代码如下:
import SwiftUI struct SAnimalView: View { @State private var isAnimating = false @State private var animationTime:Double = 0 var body: some View { NavigationView{ Image("dog") .rotationEffect(.degrees(isAnimating ? 720:0)) .animation(Animation.easeIn(duration:animationTime)) .onTapGesture { animationTime = 2 isAnimating.toggle() } } } }
如果小伙伴们有其他方法,欢迎来私聊打扰博主奥。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。