iOS - 如何在动画期间拖动元素

时间:2012-10-25 13:39:37

标签: iphone ios animation drag-and-drop

我需要在动画期间拖动一个元素。元素从屏幕顶部掉落,我需要用户可以将其拖动到任何他想要的地方,即使在动画期间也是如此 感谢

2 个答案:

答案 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选项。