0

我有一个奇怪的问题:我想在我的一个应用程序中有一个图标,该图标位于所有其他控制器/视图之上。我的想法是在处理内容视图的 UITabBarController 上方的主 XIB 文件(项目在 iOS-5 之前开始)中创建一个 UIImageView。

我在 appDelegate 的 didFinishLaunchingWithOptions 中添加了 ImageView

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...
    // Add the icon view that shows current working status (working/pause)
    [self.window addSubview:self.statusIcon];
    ...
}

ImageView 最初是隐藏的,只有在按下按钮时才会显示。然后我将分配 UIImage 并取消隐藏它:

AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.statusIcon setImage:statusIconWorking];
[delegate.statusIcon setHidden:NO];

这适用于模拟器,但不适用于设备(​​在 iPod touch 4. generation 和 iPad 3. generation (retina) 上进行了测试)。

有人可以告诉我它不是这样工作的吗?这不是图像问题(它存在于设备上,我尝试在 ImageView 中加载其他图像,这些图像在应用程序的其他部分中正确显示)。

谢谢你。

4

1 回答 1

0

我曾经观察到同样的问题,但在这里没有找到解决方案。不过,一些提示很有帮助,所以我最终确定了它。它只发生过一次,我在 xcode 版本更改几天后注意到了它。但是,我从来没有发现解决方案是什么,以及这是否真的是由版本迁移引起的。

原因是图像文件不是捆绑包的一部分。检查您的边界设置。对您可能拥有的每个目标都这样做。

我的观察是:图像文件包含在模拟器的捆绑包中。它不仅从一个版本到下一个版本都保留在那里。即使我从模拟器中删除了应用程序,它也会重新安装。我这样做是使用模拟器的 gui 删除它,就像从真实设备中删除一样,然后我手动将它从模拟器的文件系统中删除 - 只是为了确定。无论如何,该文件已重新安装。

在设备上它是不同的。创建一个 IPA 或 APP 捆绑包,就像您为 beta 测试人员所做的那样,以提交到商店。看看它。(将文件名更改为 .zip 并解压缩可能有助于查看捆绑包。)我敢打赌,您不会在那里找到您的图像。

解决方案:仔细检查您的项目设置并确保分别为所有目标正确包含所有资源。

于 2012-07-23T13:57:33.283 回答