2011-07-04 104 views
0

首先,我刚开始使用Xcode和iPhone开发,所以如果这些问题是多余的,请耐心等待...我还没有找到答案,因此我的帖子。第二......好的,还有第二......所以我会回答这个问题。iPhone应用程序问题:UIImageView序列没有加载

我使用UIImage视图作为我的TheEyeViewController的背景图像,我需要在背景UIImageView上设置另一个UIImageView。前台UIImageView需要加载一系列图像......但它不起作用。当我尝试使用代码设置前景图像视图时,我不认为编译器能够区分2个图像视图。它不会崩溃......序列不会显示出来。

对此非常感谢。 谢谢你的时间。

//.h

UIImageView * imageView;

@property(nonatomic,retain)IBOutlet UIImageView * imageView;

//.m 

- (void)viewDidLoad 

{ 

imageView.animationImages = [NSArray arrayWithObjects: 
           [UIImage imageNamed:@"openingSeq1.jpg"], 
           [UIImage imageNamed:@"openingSeq2.jpg"], 
           [UIImage imageNamed:@"openingSeq3.jpg"], 
        [UIImage imageNamed:@"openingSeq4.jpg"], 
        [UIImage imageNamed:@"openingSeq5.jpg"], 
        [UIImage imageNamed:@"openingSeq6.jpg"], 
        [UIImage imageNamed:@"openingSeq7.jpg"], 
        [UIImage imageNamed:@"openingSeq8.jpg"], 
        [UIImage imageNamed:@"openingSeq9.jpg"], 
        [UIImage imageNamed:@"openingSeq10.jpg"],nil]; 

    imageView.animationDuration = 2; 
    imageView.animationRepeatCount = 1; 
    [imageView startAnimating]; 
    [self.view addSubview:imageView]; 

如果(imageView.image ==无) { labelRandText.text = @ “图像未加载。”; }

[super viewDidLoad]; 

} 
+1

你可以发布失败的代码吗?在这种情况下也有趣的是你的类头定义,特别是定义每个UIImageView的部分。最后,确保您的Interface Builder插口连接正确。 – Tim

+0

此外,作为一个StackOverflow注意事项,你应该考虑一个更具描述性的标题。例如,像'将图像序列加载到UIImageView失败'。 – Tommy

+0

你可以检查imageView是否不是零?就像'if(!imageView)NSLog(@“There's no ImageView!!”);' – EmilioPelaez

回答

1

一般性评论,可能会或可能不会帮助:

假设[UIImage imageNamed:@"openingSeq1.jpg"]返回nil,这是一样发布一个空数组,因为零看起来就像是结束传递的事情列表中的一个到arrayWithObjects:。这可能是值得加入了快捷:

NSLog(@"os1: %@", [UIImage imageNamed:@"openingSeq1.jpg"]); 

如果显示你得到零背那么你的项目设置不正确,这样的UIImage无法找到这些文件。

如果imageView已经存在于Interface Builder中的视图中,那么[self.view addSubview:imageView];是多余的,但不应该是有害的。

一个NSLog(@"%@", imageView)(或者甚至一个记录你想要达到的imageView和另一个你认为可能有问题的,因此你可以检查它们不是同一个)可以用来验证你可以在Interface Builder中正确连线。

此外,从技术角度而言,您应该在任何自己的代码之前调用[super viewDidLoad];,因为从逻辑上讲,您希望超类在您做任何事情之前做了它应该做的任何事情。然而,与addSubview一样,这不应该在你的特定情况下真的产生任何可能性,因为UIViewController基类没有在viewDidLoad中做任何事情。