当前位置:   article > 正文

阻止NavigationView推送动画_uwp navigateview 屏蔽迁移动画

uwp navigateview 屏蔽迁移动画

最近开发的时候遇到一个问题,带有动画效果的图片放到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()
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

实际上,我只需要实现点击图片,图片旋转的效果,所以图片从左上角进入(进入到屏幕的指定位置的时事件跟(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()
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

如果小伙伴们有其他方法,欢迎来私聊打扰博主奥。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/219170
推荐阅读
相关标签
  

闽ICP备14008679号