我一直试图使用此代码为图像设置动画。
- (void)viewDidLoad
{
dice.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image1.png"],
[UIImage imageNamed:@"image2.png"],
[UIImage imageNamed:@"image3.png"], nil];
[dice setAnimationRepeatCount:3];
dice.animationDuration = 1;
[super viewDidLoad];
// Do any additional setup after loading the view.
}
然后我有一个让动画播放的按钮。
-(IBAction) animate:(id)sender {
[dice startAnimating];
}
一切都很完美。动画播放3次,每次持续1秒。但是,在动画播放3次后,骰子图像视图将从屏幕上消失。如何阻止这种情况发生,以免图像消失,我可以对图像视图做其他事情?
答案 0 :(得分:1)
您是否在任何地方设置了dice.image
?动画与imageView包含的图像不同,并且"在"前面播放。图像然后被删除。我建议使用UIImageView
' startAnimatingWithCompletionBlock
方法:
- (void) viewDidload {
dice.image = [UIImage imageNamed:@"image3.png"]; // big assumption on my part
// the assumption is that this is the image you want
// after animating
dice.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image1.png"],
[UIImage imageNamed:@"image2.png"],
[UIImage imageNamed:@"image3.png"], nil];
[dice setAnimationRepeatCount:3];
dice.animationDuration = 1
[super viewDidLoad];
}
A" block"是一行或多行代码,等待动画完成后再执行。如果您事先设置了图像,它将显示在"后面"它们运行时的动画可能不是你想要的。