该项目使用两个单独的构建阶段将这些图形移动到最终应用程序中.第一种是传统的copy Bundle Resource,它将1x和2x图形都集成到应用程序包中.第二个是复制文件构建阶段,它将Web图形复制到具有“图形”子路径的单独的资源目标中.
(这避免了一些命名冲突,让网页设计师使用熟悉的“graphics / whatever.png”路径.)
构建此项目时,我们会得到一个依赖性分析错误,该错误表示:
Multi-representation image ‘whatever@2x.png’ cannot be processed by a
copy files build phase – try a copy Resources build phase,or disable
COMBINE_hidpi_IMAGES.
关闭名为“组合高分辨率图稿”的部署构建设置很容易,但这会影响基于NIB的UI以及WebVIEw UI中使用的图形.打开选项后,button.png和button@2x.png将合并到应用程序包的Resource文件夹中的button.tiff中.没有它,使用原始名称.
据我所知,应用程序运行正常,但由于COMBINE_hidpi_IMAGES默认设置为开启,我怀疑将图形部署为单个文件有一些好处(可能更快加载和缓存).
理想情况下,我只想在复制文件构建阶段禁用COMBINE_hidpi_IMAGES.我无法想办法做到这一点,希望这里的其他人可以……
2012年8月27日更新
对于此特定应用程序,解决此问题的最简单方法是使用2x版本替换所有HTML图像.由于标签指定宽度和高度,因此在非Retina设备上图像按比例缩小50%.质量很好,因为它们是从本地文件系统加载的,所以没有可察觉的性能影响.
2012年8月28日更新
我们采用的另一种方法是使用命名约定.一些HTML图像是使用CSS指定的(媒体查询选择Retina或非Retina版本.)为了避免将这些图像组合成单个hidpi图像的问题,我们使用whatever.png和whatever_retina.png.
解决方法 我能想到的唯一方法是做一些黑客攻击,但没有其他人回答,因为它应该适合你.我建议您在目标上使用xcconfig文件(target.xcconfig)来指定要更改的设置,然后在阶段之前/之后构建脚本,将当前xcconfig替换为两个版本之一(target-on.xcconfig,target -off.xcconfig).这应该可行,但Xcode可能不会更新xcconfig文件,直到稍后(我现在无法检查),你必须检查.
我会留给你弄清楚细节.关于这种方法的更少细节(一种不那么神奇的变化),以及如何设置它,可以在我的blog找到.
总结以上是内存溢出为你收集整理的xcode – 用于WebView的COMBINE_HIDPI_IMAGES和Retina图形全部内容,希望文章能够帮你解决xcode – 用于WebView的COMBINE_HIDPI_IMAGES和Retina图形所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)