我已经创建了一个静态库和一个资源包,用于在多个项目中重用代码和资产.
在静态库中,我有一个管理器类,其唯一目的是创建其他的UIViewControllers,其视图是从.xib文件创建的(使用常用initWithNibName:bundle:方法).
在Interface Builder中创建视图时,图像显示正确.但是,当我在模拟器上运行应用程序时,我收到此错误:
Could not load the "<image_name.png>" image referenced from a nib in the
bundle with identifier "com.<my_company>.<app_identifer>"
Run Code Online (Sandbox Code Playgroud)
经过几个小时的研磨,我终于检查了资源包,发现.png文件不在其中!相反,相反名称的.tiff文件(不包括@ 2x版本).
所有图像都包含在捆绑包的构建阶段,在复制包资源下,我已经在其他iOS项目中使用了这些图像(因此它们没有被破坏).
还有其他人经历过这个吗?是否可以安全地假设图像将始终作为.tiff添加到包中?(如果是这样,将界面生成器中的图像名称更改为.tiff是否安全?)或者我在这里做错了什么?
感谢您的帮助.
我有一个应用程序,大多数图像资源都存储在单独的资源包中(这是有正当理由的).此资源包与主应用程序包一起添加到项目中,当我在Interface Builder中设计我的NIB时,所有这些图像在IB内部都可见(即它们出现在我的UIImageView的下拉列表中,并且它们在我的UI中正确显示).但是当我在模拟器中运行我的应用程序时,所有这些图像都丢失了.除了主应用程序包之外,有没有办法告诉UIKit在这个额外的资源包中查找这些图像?
我可以在viewDidLoad中手动加载这些图像没问题,但我正在寻找一种方法来使用Interface Builder来更容易地更改这些NIB的设计/皮肤.
更新:虽然该捆绑包中的图像文件在IB的下拉列表中可用,但它们不会在运行时加载.但是,如果我在IB中使用包名称为其名称添加前缀,如下所示:

然后它们将在运行时正确加载,但IB会将它们显示为大的蓝色问号.
现在的问题是 - 如何充分利用这两个世界并在IB(设计时)和运行时都正确显示图像.
我需要访问iphone API来读取多页TIFF图像文件格式,任何人都知道如何:如果不是,我如何在iphone/xcode上构建和使用开源libtiff.