Ios Swift:按照/以与滑动相同的速率运行动画?

Ios Swift:按照/以与滑动相同的速率运行动画?,ios,swift,animation,Ios,Swift,Animation,我正在尝试通过此处设置的视图实现交互式动画/过渡效果: 当用户向上滑动时,我运行这些动画,使其看起来像顶部栏随着箭头向上移动,等等,然后重置这些动画: UIView.animateWithDuration(0.8, animations: { self.halfBtn.center.y -= self.screenSize.height }, completion: nil) UIView.animateWithDurati

我正在尝试通过此处设置的视图实现交互式动画/过渡效果:

当用户向上滑动时,我运行这些动画,使其看起来像顶部栏随着箭头向上移动,等等,然后重置这些动画:

UIView.animateWithDuration(0.8, animations: {
            self.halfBtn.center.y -= self.screenSize.height

            }, completion: nil)


        UIView.animateWithDuration(0.4, animations: {
            self.arrow.center.y -= self.screenSize.height * (100/568)
            self.arrow.alpha = CGFloat(0)
            self.aboutText.textColor = UIColor(red: 70/255, green: 70/255, blue: 70/255, alpha: 1)
            //self.skyText.textColor = UIColor(red: 233/255, green: 233/255, blue: 233/255, alpha: 1)
            //self.halfBtn.center.y -= self.screenSize.height * (100/568)

            }, completion: {
                (value: Bool) in
                //after
                UIApplication.sharedApplication().openURL(NSURL(string: "http://www.troublemakertechnologies.com")!)

                self.resetAnim()

        })

    }

    func resetAnim()
    {
        var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC)))
        dispatch_after(dispatchTime, dispatch_get_main_queue(), {
            // your function here

            self.arrow.center.y = self.screenSize.height * (393/480)
            self.arrow.alpha = CGFloat(1)
            self.halfBtn.center.y = 0
            self.aboutText.textColor = UIColor(red: 233/255, green: 233/255, blue: 233/255, alpha: 1)
            //self.skyText.textColor = UIColor(red: 70/255, green: 70/255, blue: 71/255, alpha: 1)
        })

    }
因此,我已经部分达到了预期效果(箭头淡出,条形向上移动):

但是,如果用户不是特别快地刷卡,动画就会失去“感觉”,移动得太快,看起来好像它依赖于刷卡。我需要知道如何根据用户的滑动速度运行动画

有没有一种方法可以获得用户的刷卡率,并以某种方式将该值作为持续时间插入?或者,我的动画是否根据滑动速度递增


我希望动画能够“响应”,并在用户刷卡的同时运行-实现这一点的正确方法是什么?

也许这会有所帮助:这是一个相当棘手的问题,我已经为此进行了相当多的斗争。目前,考虑到视图的当前位置和平移手势识别器的速度,我正在完成使用弹簧/阻尼系统执行此操作的整个框架。您可能不想使用动画,实际上,只要根据滑动手势开始处的增量y距离改变视图的属性即可。这样,你就可以根据用户的输入来修改视图,而不会重复运行大量的动画。我该怎么做呢?你能举个例子吗?有人知道如何在安卓系统中做到这一点吗?也许这会有所帮助:这是一个相当棘手的问题,我一直在努力解决这个问题。目前,考虑到视图的当前位置和平移手势识别器的速度,我正在完成使用弹簧/阻尼系统执行此操作的整个框架。您可能不想使用动画,实际上,只要根据滑动手势开始处的增量y距离改变视图的属性即可。这样,你就可以根据用户的输入来修改视图,而不会重复运行大量的动画。我该怎么做呢?你能举个例子吗?有人知道如何在Android中做到这一点吗?