0

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

4

2 回答 2

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 方法在拖动过程中更新位置。

于 2012-10-25T13:59:56.797 回答
0

由于您使用的是UIView基于块的动画,请尝试使用:

animateWithDuration:delay:options:animations:completion:

UIViewAnimationOptionAllowUserInteraction选项。

于 2012-10-25T14:24:34.500 回答