【发布时间】:2013-05-23 13:10:03
【问题描述】:
我正在开发一个“申请表格填写”应用程序,并使用 xml 创建表格。
如果我在 xml 中找到类似下面的标签,我会将 UIlabels 添加为 subView
<label x="" y="" width="" height="" text="First Name" textcolor="" font="Arial" Bold="NO" Italic="NO" .../>
<label x="" y="" width="" height="" text="Last Name" textcolor="" font="TimesNewRoman" Bold="NO" Italic="NO" .../>
看起来像
我对 UIButtons、滑块、UItextFields 等使用相同的方法 (注意:-尽可能多的 UI 对象是动态创建的,就像我遇到的标签一样)
我的问题是给它们应用字体, 例如,在第一个标签中,我收到字体名称 Arial 所以如果我使用方法创建字体
NSString *fontName;
//......getting font name from attribute 'font'.....
[UIFont fontWithName:fontName size:20];
显然无法设置所需的字体,因为普通 arial 字体的名称是 ArialMT
为了克服这个问题,我必须在最后附加 MT,但如果我这样附加,那么我将被困在第二个标签“TimesNewRoman”中,而 TimesNewRoman 的正常字体是TimesNewRomanPSMT。
如果我对粗体和斜体表示“是”,我的问题会进一步恶化
例如,如果是 TimesNewRoman - 'PS' 后缀为 'TimesNewRoman' 并且 'MT' 出现在字体名称中的连字符之后。
TimesNewRomanPS-BoldItalicMT
TimesNewRomanPS-BoldMT
TimesNewRomanPS-ItalicMT
TimesNewRomanPSMT
如果是 Arial,则成员是
Arial-BoldItalicMT
Arial-BoldMT
Arial-ItalicMT
ArialMT
除此之外,在某些字体中,使用术语“斜体”代替斜体,如下所示
字体系列:- Courier
Courier
Courier-Bold
Courier-BoldOblique
Courier-Oblique
是否有任何补救措施可以将所需的字体名称与字体系列分开 // 无需担心字体名称
【问题讨论】: