如何触摸和拖动动画图像?这是我的动画代码:

时间:2012-04-14 09:48:14

标签: objective-c ios animation drag-and-drop

- (void)viewDidLoad
{
    [super viewDidLoad];


        [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint abc =chem1.center;

    abc.y= 480;
    chem1.center=abc; 

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint def =chem2.center;

    def.y= 480 ;
    chem2.center=def; 

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint hij =nat1.center;

    hij.y= 480;
    nat1.center=hij; 

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:4];
    [UIView setAnimationRepeatCount:50];
    [UIView setAnimationRepeatAutoreverses:NO];

    CGPoint klm =nat2.center;

    klm.y= 480;
    nat2.center=klm;  
}

我非常感谢帮助

1 个答案:

答案 0 :(得分:0)

您的问题分为两部分:如何点按动画图片如何拖动图片


如何点按动画图片。

背景

当您为视图设置动画(或更准确地说是其图层)时,您更改的属性(在您的情况下position(通过设置center))会立即更改为其最终值。如果你只是动画(比如使用CABasicAnimation,那么正确的可能根本不会改变。

这意味着如果您尝试点按视图(或图层),它将位于您将其移动到的位置(其最终位置(尽管任何持续时间或动画的重复计数)。

命中测试移动层

为了能够测试正在移动的内容,您需要针对您尝试点按的视图图层的presentationLayer进行测试。

CGPoint touchPoint = [gestureRecognizer locationInView:[self view]];

if ([[[[self movingView] layer] presentationLayer] hitTest:touchPoint]) {
    // Yeah, you hit the moving (animating) layer!
}

现在用户已经点击了移动视图(在您的情况下为图像),您可以开始处理拖动。

如何拖动图像

拖动图像时,将图层移动到用户手指拖动图像的位置。

删除移动视图的动画

首先,您应该取消该视图的正在进行的动画(拥有动画名称使您只能取消一个动画。

[[[self movingView] layer] removeAllAnimations];

或者,如果您为动画动画设置了名称。

[[[self movingView] layer] removeAnimationForKey:@"nameOfMovingAnimation"];

将视图移动到用户手指的位置

接下来,当用户移动手指时,您应该(不断)更新视图的位置。你不应该动画这个,因为它会增加手指移动和视图之间的时间,并使你的应用程序看起来像是滞后的。 拖动动画使其看起来很流畅。

注意:,因为您的问题在用户拖动图片后没有说出您要执行的操作,或者在删除图片时会发生什么。我无法进一步解释。

需要更多帮助吗?

在网页(或StackOverflow)中搜索以下内容:" iOS拖动视图"您可能会找到有关如何拖动图像视图的更多信息。

一旦你走到这一步,就可以在StackOverflow上再问一个问题(即你可以点击动态图像并停止移动)。