我正在制作一个动画,它会改变我已经在应用中的一些照片。
在我四处寻找之后,我找到了一些对我有用的东西。
以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
UIImageView*animationView = [[UIImageView alloc] initWithFrame:self.view.frame];
animationView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"photo1.jpg"],
[UIImage imageNamed:@"photo2.jpg"],
[UIImage imageNamed:@"photo3.jpg"], nil];
animationView.animationDuration = 5;
animationView.animationRepeatCount = 0;
[animationView startAnimating];
[self.view addSubview:animationView];
}
所以,即使这对我来说也很有用,它给了我一个逻辑错误(黄色三角标志),它说 “'animationView'的本地声明隐藏了实例变量”
即使我运行代码并且它完成了我想要的操作,我也无法理解为什么会出现此错误。
另请注意,这发生在我声明为插座的UIImage内部
还有一个问题:我如何添加淡入淡出效果?
提前致谢
答案 0 :(得分:2)
您必须将UIImageView *animationView
声明为实例变量或属性。
您可以安全地删除UIImageView *
中的viewDidLoad
部分,因为无需重新声明animationView
为UIImageView
,因为编译器已经知道它,这就是为什么它会给你警告。
所以它看起来像这样:
- (void)viewDidLoad
{
[super viewDidLoad];
animationView = [[UIImageView alloc] initWithFrame:self.view.frame];
animationView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"photo1.jpg"],
[UIImage imageNamed:@"photo2.jpg"],
[UIImage imageNamed:@"photo3.jpg"], nil];
animationView.animationDuration = 5;
animationView.animationRepeatCount = 0;
[animationView startAnimating];
[self.view addSubview:animationView];
}
答案 1 :(得分:0)
对于淡入淡出效果,您可以执行以下操作:
//Fade in
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[animationView setAlpha:1];
[UIView commitAnimations];
//Fade out
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[animationView setAlpha:0];
[UIView commitAnimations];