【问题标题】:iPhone app issue: UIImageView sequence not loadingiPhone 应用程序问题:UIImageView 序列未加载
【发布时间】:2011-07-04 02:26:14
【问题描述】:

首先,我刚开始开发 Xcode 和 iPhone,所以如果这些问题是多余的,请多多包涵……我还没有找到答案,因此我发帖。第二个...好吧,还有第二个...所以我会回答这个问题。

我正在为 TheEyeViewController 的背景图像使用 UIImage 视图,并且我需要在背景 UIImageView 之上设置另一个 UIImageView。前台 UIImageView 需要加载一系列图像......但它不工作。当我尝试使用代码设置前景图像视图时,我认为编译器无法区分这两个图像视图。它不会崩溃......序列只是没有显示出来。

非常感谢您对此的任何帮助。 感谢您的宝贵时间。

//.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 == nil) { labelRandText.text = @"图片未加载。"; }

    [super viewDidLoad];

} 

【问题讨论】:

  • 你能发布失败的代码吗?在这种情况下,您的类头定义也很有趣,尤其是定义每个 UIImageView 的部分。最后,确保您的 Interface Builder 插座连接正确。
  • 另外,作为 StackOverflow 注释,您应该考虑一个更具描述性的标题。例如,“将图像序列加载到 UIImageView 失败”。
  • 你能检查一下 imageView 是否不为零吗?类似if(!imageView) NSLog(@"There's no ImageView!");
  • 我添加了一个 if 语句,它说图像没有加载。
  • 会不会是 2 个图像视图控件的命名约定不一致?编译器是否在查看 2 并将其视为一个控件?

标签: iphone xcode


【解决方案1】:

可能有帮助也可能没有帮助的一般 cmets:

假设 [UIImage imageNamed:@"openingSeq1.jpg"] 返回 nil,这与发布一个空数组相同,因为该 nil 看起来就像传递给 arrayWithObjects: 的事物列表的结尾。可能值得快速添加:

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

如果这表明您返回 nil,则说明您的项目设置不正确,导致 UIImage 无法找到文件。

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

NSLog(@"%@", imageView)(或者甚至一个同时记录您尝试访问的 imageView 和您认为可能有问题的另一个,因此您可以检查它们不是同一个)可用于验证确保您在 Interface Builder 中正确连接。

此外,从技术上讲,您应该在您自己的任何代码之前调用[super viewDidLoad];,因为从逻辑上讲,您希望超类在您执行您应该做的任何事情之前完成它应该做的任何事情。但是,与 addSubview 一样,这在您的特定情况下不应该真正产生任何影响,因为 UIViewController 基类在 viewDidLoad 中没有做任何事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多