fbCharm
iOS上利用fallback机制为不同语言的文字(script)设定字体,从而使得文本混排更为优雅。如果您是一位WEB开发者,相信您对CSS的font-family属性一定不会陌生。通常我们会为font-family属性设置一长串的字体(家族)列表,就像这样的:
.text {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Arial, "Microsoft YaHei", "黑体", "宋体", sans-serif;
}
有人肯定会问,为什么要这么设置啊?如果你足够细心,你一定会发现当你浏览该网页时英文字体和中文字体并不是同一种字体,如果你在不同的操作系统甚至不同的电脑上看到网页所呈现的字体也不一样。这又是为什么呢?在您使用Microsoft Word进行段落排版的时候,你会发现Word可以自动对中文样式应用中文字体,对英文样式应用英文字体。这又是如何做到的呢?
在实际的排版需求中,为了好看,我们通常会需要针对不同语言的文字(script)进行不同的字体设定,以达到最佳的视觉效果。当然,对于我们来说,最常见的还是中英文混排。通常设计人员给出的设计稿非常漂亮,可是中英文使用了不同的字体,我们开发人员该如何高保真地还原设计稿的原始设计呢?很显然,对于WEB开发者来说,已经有了很好的解决方案,比如使用Python批量提取中英文混排中英文文本的工具。而对于其他客户端的同学来说,这估计应该就有点犯难了,我们通常会告诉设计人员:“系统不支持”抑或“做不了”之类的话。
那事实上,到底能不能做到呢?答案是肯定的。iOS的开发者们可以利用CoreText实现图文混排,甚至还可以通过IOS TQRichTextView图文混排来实现更复杂的排版需求。还有,您可以参考iOS图文混排来获取更多详细的信息。通过这些资源和工具,我们完全可以实现设计稿中的各种字体效果,甚至能达到超出预期的精美排版。
所以,别再对设计师说“做不了”了,抓住这些强大的工具和方法,去实现那些美轮美奂的排版效果吧!