[英]Animating UIImageView frame by frame
我有一个关于如何使用逐帧方法添加动画UIImageView的想法,但我的问题是关于如何对UIImageView进行动画处理,该方法已经作为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上为该图像设置动画
更容易了。 首先,添加.h文件:
@property (nonatomic, retain) IBOutlet UIImageView *iV;
之后,将此插座连接到情节提要上的实际UIImageView。 更改您的代码:
iV.animationImages = myImages;
iV.animationDuration = 0.25;
iV.animationRepeatCount = 1;
[iV startAnimating];
就这样。 希望这有所帮助
ps是的,不要忘记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"]];
}
好吧,几乎一样。 您不需要分配图像视图[[UIImageView alloc] init]
也不需要将其添加到viewController。 其余部分相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.