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中做到这一点吗?