Анимируйте изображение как приложение электронной почты iPhone - PullRequest
1 голос
/ 01 марта 2012

Я хочу анимировать изображение так же, как приложение «Почта» оживляет значок «конверт» при попытке переместить сообщение электронной почты в другое поле.Я пытался использовать CoreAnimation, но я хочу, чтобы он шел по изогнутой траектории.

Может кто-нибудь указать, как это сделать?

1 Ответ

7 голосов
/ 01 марта 2012

UIBeizerPath - это класс, который можно использовать для создания пути imageObject, который следует во время анимации.

Попробуйте эту анимацию, я создал ее как анимацию удаления изображения в iphone.

- (IBAction)buttonClicked:(id)sender {
    UIView *senderView = (UIView*)sender;
    if (![senderView isKindOfClass:[UIView class]])
        return;

    UIView *icon =myImageView;

    //move along the path
    UIBezierPath *movePath = [UIBezierPath bezierPath];
    [movePath moveToPoint:icon.center];
    [movePath addQuadCurveToPoint:senderView.center
                     controlPoint:CGPointMake(senderView.center.x, icon.center.y)];

    CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    moveAnim.path = movePath.CGPath;
    moveAnim.removedOnCompletion = YES;


    //Scale Animation
    CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
    scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
    scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1,0.1, 1.0)];
    scaleAnim.removedOnCompletion = YES;


    CAAnimationGroup *animGroup = [CAAnimationGroup animation];
    animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim, nil];
    animGroup.duration = 1.0;
    [icon.layer addAnimation:animGroup forKey:nil];

// create timer with time of animation to change the image.   

}

Не забудьте импортировать QuartzCore Framework в свой проект и импортировать его в файл заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...