在播放 UIAnimation 时执行 UIPanGestureRecognizer
Posted
技术标签:
【中文标题】在播放 UIAnimation 时执行 UIPanGestureRecognizer【英文标题】:do UIPanGestureRecognizer while playing UIAnimation 【发布时间】:2013-04-10 06:14:38 【问题描述】:我在平移对象后设置动画效果
-(void)panView:(UIPanGestureRecognizer*)recognizer
//do sth...
if(recogizer.state==UIGestureRecognizerStateEnded)
[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseOut animation^
//do sth2...
completion:^(BOOL finished)
//do sth3...
];
问题是在播放动画时,我再次平移该对象。 新的平移没有发生,我应该等到动画完成才能再次平移。
如何中断动画突然进行新的平移???
解决方案
将 UIViewAnimationOptionAllowUserInteraction 添加到选项。 并且可以在重做平移之前设置 self.layer removeAllAnimations。
【问题讨论】:
【参考方案1】:试试下面的代码
-(void)panView:(UIPanGestureRecognizer*)recognizer
//do sth...
[animatingView.layer removeAllAnimations];
if(recogizer.state==UIGestureRecognizerStateEnded)
[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction animation^
//do sth2...
completion:^(BOOL finished)
//do sth3...
];
【讨论】:
以上是关于在播放 UIAnimation 时执行 UIPanGestureRecognizer的主要内容,如果未能解决你的问题,请参考以下文章
为 UIImageview 设置 Uianimation 和 Touch 事件
试图从 UIButton 后面滑出一个新的 UIView 是 UIAnimation