逐帧动画UIImageView

时间:2012-09-25 07:31:28

标签: ios animation uiimageview frame

我知道如何使用逐帧方法添加动画UIImageView但我的问题是关于如何在视图控制器故事板上添加UIImageView ALREADY 作为IBOutlet UIImageView。

在这个代码的和平中会有什么变化?!

NSArray *myImages = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"bookmark1.png"],
                         [UIImage imageNamed:@"bookmark2.png"],
                         [UIImage imageNamed:@"bookmark3.png"],
                         [UIImage imageNamed:@"bookmark4.png"],
                         [UIImage imageNamed:@"bookmark5.png"],nil];

    myAnimatedView = [UIImageView alloc];

   [myAnimatedView initWithFrame:CGRectMake(0, 0, 131, 125)];

    myAnimatedView.animationImages = myImages;

    myAnimatedView.animationDuration = 0.25;

    myAnimatedView.animationRepeatCount = 1;

    [myAnimatedView startAnimating];

    [self.navigationController.view addSubview:myAnimatedView];

我希望通过我的viewController

为这个图像添加动画效果

http://imageshack.us/a/img717/3051/bookmarkl.gif

2 个答案:

答案 0 :(得分:5)

这更容易。首先,添加.h文件:

@property (nonatomic, retain) IBOutlet UIImageView *iV;

之后,将此插座连接到故事板上的实际UIImageView。更改您的代码:

iV.animationImages = myImages;
iV.animationDuration = 0.25;
iV.animationRepeatCount = 1;
[iV startAnimating];

就是这样。希望这有帮助

P.S。是的,不要忘记iV = nil; in - (void)viewDidUnload方法

UPD:已添加

[self performSelector:@selector(animationDone) withObject:nil afterDelay:0.25];

startAnimating调用后,显然添加了animationDone方法:

- (void)animationDone {
    [iV stopAnimating];
    [iV setImage:[UIImage imageNamed:@"bookmark5.png"]];
}

答案 1 :(得分:0)

嗯,它几乎是一样的。您不需要分配图像视图[[UIImageView alloc] init],也不需要将其添加到viewController。其余的都一样。