这个问题涉及iOS 3.2之前的版本.从3.2开始,使用下面的samvermette答案很容易实现这个功能,我已经改变了接受的答案(从命令到samvermette)以反映这一点.我不能赞同这两个答案(除了upvotes),但它们都很好.
我想有一个应用程序包括一个自定义字体用于渲染文本,加载它,然后使用标准UIKit元素,如UILabel.这可能吗?
我在下面找到了链接:
但是这些要求我自己渲染每个字形,这有点太辛苦了,特别是对于多行文本.
我也发现帖子直截了当地表示这是不可能的,但没有理由,所以我正在寻找一个确定的答案.
编辑 - UIKit实验失败
我下载了Harrowprint.tff(从这里下载)并将其添加到我的Resources目录和项目中.然后我尝试了这段代码:
__PRE__
导致抛出异常.查看Finder中的TTF文件,确认字体名称为Harrowprint.
编辑 - 到目前为止已经有很多回复告诉我阅读关于X或Y的文档.我已经对所有这些进行了广泛的实验并且无处可去.在一个案例中,X结果仅与OS X相关,而不是在iPhone上.因此,我正在为这个问题设置一个赏金,我将奖励给第一个提供答案的人(仅使用文档化的API),他们会回答足够的信息以便在设备上运行.在模拟器上工作也是一个奖励.
编辑 - 似乎赏金自动奖励得票最多的答案.有趣.实际上没有人提供解决问题的答案 - 涉及编码自己的UILabel子类的解决方案不支持自动换行,这对我来说是一个必不可少的功能 - 尽管我想我可以扩展它来做到这一点.
这个问题与UILabel极为相似,自定义字体显示*错误*自定义字体,但我需要同时使用此系列中的三种字体.我正在使用Myriad Pro,就像那个问题一样,但我需要使用Bold,Semibold和Regular.
目前,当我尝试通过定义为:
#define MYRIAD_BOLD(x) [UIFont fontWithName:@"MyriadPro-Bold" size:(x)]
Run Code Online (Sandbox Code Playgroud)
..给了我Semibold.如果我从plist条目中删除"由应用程序提供的字体"中的Semibold(对于上面链接的类似问题的"答案"),正确返回Bold,但(显然)Semibold不再可用.
关于为什么我(看似)一次限制为两个自定义字体的任何想法?(来自同一个家庭,至少?)
顺便说一句,这是NSLog输出[UIFont fontNamesForFamilyName:@"Myriad Pro"]:
Myriad Pro font names: (
"MyriadPro-Semibold",
"MyriadPro-Regular",
"MyriadPro-Bold"
)
谢谢!