UIImage视图 - 动画视图逻辑错误xCode 4.2

时间:2012-03-14 21:51:26

标签: ios uiimageview uiimage

我正在制作一个动画,它会改变我已经在应用中的一些照片。

在我四处寻找之后,我找到了一些对我有用的东西。

以下代码:

 - (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内部

还有一个问题:我如何添加淡入淡出效果?

提前致谢

2 个答案:

答案 0 :(得分:2)

您必须将UIImageView *animationView声明为实例变量或属性。

您可以安全地删除UIImageView *中的viewDidLoad部分,因为无需重新声明animationViewUIImageView,因为编译器已经知道它,这就是为什么它会给你警告。

所以它看起来像这样:

- (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];