我有一个文本字段,我希望用户能够从下拉框中设置字体。我似乎无法找到任何与此类事情有关的文档,但它似乎应该是相当微不足道的,所以我假设我只是使用不良搜索术语或其他东西。
我显然可以自己构建下拉框,但我不知道如何获得所有可用字体的列表,包括我自己的自定义字体。
答案 0 :(得分:2)
您可以创建一个字体数组来填充下拉列表,如下所示:
self.fontNameList = [[NSMutableArray alloc] init];
NSArray *familyNames = [UIFont familyNames];
for (NSString *familyName in familyNames) {
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
for (NSString *fontName in fontNames) {
[self.fontNameList addObject:fontName];
}
}
// And optionally, to arrange them in alphabetical order...
[self.fontNameList sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
这应该找到所有你的字体,自定义和其他。
然后假设您在下拉菜单中使用UITableView
,其中每行包含字体名称,一旦选择了索引,您就可以在UITableViewDelegate
&#中设置字体39; s didSelectRowAtIndexPath:
方法如下:
UIFont *currentFont = [UIFont fontWithName:[self.fontNameList objectAtIndex:indexPath.row] size:12];
在这种情况下,我将大小设置为12,但您可以将其设置为您想要的任何变量浮点值或默认常量浮点数。
答案 1 :(得分:1)
Fist获取familyNames的字体系列,然后使用fontNamesForFamilyName获取不同系列名称的所有字体。
通过设置所选字体显示名称并对用户选择做出反应。