3

有没有办法以编程方式检测给定字体是衬线字体还是无衬线字体?

例如,如果用户选择了 Palatino,它就是 serif。如果用户选择 Arial,则它是无衬线字体。

我可以检测到字体名称和姓氏。但我没有看到 UIFont 的 serif 或 san serif 属性。如果没有这个,我想我必须为用户可用的每种字体手动设置和跟踪 isSerif BOOL?

4

3 回答 3

1

事实上,UIFont 没有任何属性可以提示字体类型。如果您只依赖 OS 字体系列(50+ iOS 6.x),您可以轻松地在 plist 中管理它们,并具有所有(未来)必要的属性。对于使用第三方字体集,如果有(无)衬线字体的属性,您可以阅读ttf 规范。最后的手段是检查其中»serif«的系列或/和字体名称,假设它们已相应命名。

于 2013-01-18T17:54:43.660 回答
0

没有任何财产UIFont可以明确地为您服务。此时可能值得向 中添加类别UIFont,但看起来您必须自己设置映射。

可能是 GitHub 上的一个好项目。

于 2013-01-18T17:43:18.547 回答
0

您可以使用关键字体名称和布尔值创建一个 plist。这是iOS中的字体列表

于 2013-01-18T17:50:21.820 回答