首先,我刚刚开始使用Xcode和iPhone开发,所以如果这些问题多余,请耐心等待......我还没有找到答案,因此我发布了。第二......好吧,还有第二......所以我会回答这个问题。
我使用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];
if(imageView.image == nil) { labelRandText.text = @“图片未加载。”; }
[super viewDidLoad];
}
答案 0 :(得分:1)
可能有帮助或可能没有帮助的一般性评论:
假设[UIImage imageNamed:@"openingSeq1.jpg"]
返回nil,这与发布空数组相同,因为nil看起来像是结束传递给arrayWithObjects:
的事物列表的nil。这可能值得快速添加:
NSLog(@"os1: %@", [UIImage imageNamed:@"openingSeq1.jpg"]);
如果显示您的状态为nil,那么您的项目设置不正确,导致UIImage找不到文件。
如果imageView已经在Interface Builder的视图中,那么[self.view addSubview:imageView];
是多余的,但不应该是有害的。
可以使用NSLog(@"%@", imageView)
(甚至可以记录您尝试访问的图像视图和您认为可能存在问题的另一个图像,因此您可以检查它们不是同一个)验证您是否在Interface Builder中正确连接了所有内容。
另外,从技术上讲,你应该在你自己的任何代码之前调用[super viewDidLoad];
,因为从逻辑上讲,你希望超类在你做任何你应该做的事情之前做了它应该做的任何事情。但是,与addSubview一样,这在你的特定情况下不应该有任何可能性,因为UIViewController基类在viewDidLoad中没有做任何事情。