我需要在动画期间拖动一个元素。元素从屏幕顶部掉落,我需要用户可以将其拖动到任何他想要的地方,即使在动画期间也是如此 感谢
答案 0 :(得分:1)
您可以使用touchesBegan方法来检测用户何时触摸该元素。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if (touch != nil && (touch.view == elementView))
//do your stuff
}
然后将元素的位置设置为触摸位置,并删除动画。
elementView.center = [touch locationInView:self.view];
[elementView.layer removeAllAnimations];
这应该有效。然后,您可以使用类似的touchesMoved方法在拖动过程中更新位置。
答案 1 :(得分:0)
由于您使用的是基于UIView
块的动画,请尝试使用:
animateWithDuration:delay:options:animations:completion:
使用UIViewAnimationOptionAllowUserInteraction
选项。