我正在构建一个包含.xib和.storyboard文件的ResourceBundle。这些是我构建的静态库访问的文件。它们在捆绑中的原因是因为静态库是从多个应用程序中使用的。
这些故事板和.xib引用了许多属于资产目录的图像。困境是资产目录应该在哪里。
如果我将资产目录与.xib文件一起放在捆绑包中,则iOS7无法加载任何图像。那是因为[UIImage imageNamed:]
只查看iOS7中的主要包。
相反,如果我将目录放在应用程序中,那么图像在iOS7中正确加载,但无法在iOS8中加载!我可以将资产目录放在捆绑包和主应用程序中,然后它适用于iOS7和8.但是,这会使我随应用程序一起提供的图像数据的大小翻倍。
另一个对我有用的选项是将捆绑包的最小部署版本设置为IOS6。这可以防止将资产目录编译为Assets.car,并且可以从iOS 7和8加载图像。这种方法适用于我的一个ResourceBundles,但对于另一个,它没有为我的iPhone和iPad图像创建不同的文件
关于如何解决这个问题的想法?
答案 0 :(得分:0)
我有同样的问题,使用框架和捆绑包,帮助我的唯一解决方案是我将图像直接添加到捆绑文件夹,而诅咒将它们添加到复制捆绑资源而不是资产目录,它工作正常:
首先得到你的包裹:
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"YourBundle" ofType:@"bundle"]];
然后得到你的形象:
NSString *imagePath = [bundle pathForResource:@"imageName" ofType:@"imageType"];
UIImage* yourImage = [UIImage imageWithContentsOfFile:imagePath];
希望它会有所帮助。