xcode – 用于WebView的COMBINE_HIDPI_IMAGES和Retina图形

xcode – 用于WebView的COMBINE_HIDPI_IMAGES和Retina图形,第1张

概述我们有一个 Xcode项目,包括用于基于NIB的UI的Retina图形和WebView UI.该项目为Mac构建了一个应用程序. 该项目使用两个单独的构建阶段将这些图形移动到最终应用程序中.第一种是传统的Copy Bundle Resource,它将1x和2x图形都集成到应用程序包中.第二个是复制文件构建阶段,它将Web图形复制到具有“图形”子路径的单独的资源目标中. (这避免了一些命名冲突,让网 我们有一个 Xcode项目,包括用于基于NIB的UI的Retina图形和WebVIEw UI.该项目为Mac构建了一个应用程序.

该项目使用两个单独的构建阶段将这些图形移动到最终应用程序中.第一种是传统的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将合并到应用程序包的Res​​ource文件夹中的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图形所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1038997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存