逐帧动画UIImageView

Shy*_*man 4 animation frame uiimageview ios

我有一个关于如何使用逐帧方法添加动画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];
Run Code Online (Sandbox Code Playgroud)

我希望通过viewController为这个图像添加动画效果

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

dan*_*des 5

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

@property (nonatomic, retain) IBOutlet UIImageView *iV;
Run Code Online (Sandbox Code Playgroud)

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

iV.animationImages = myImages;
iV.animationDuration = 0.25;
iV.animationRepeatCount = 1;
[iV startAnimating];
Run Code Online (Sandbox Code Playgroud)

就这样.希望这有帮助

ps是的,别忘了iV = nil; in - (void)viewDidUnload方法

UPD:补充道

[self performSelector:@selector(animationDone) withObject:nil afterDelay:0.25];
Run Code Online (Sandbox Code Playgroud)

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

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