【问题标题】:Allowing the user to choose a new font from a list on iOS允许用户从 iOS 列表中选择新字体
【发布时间】:2015-02-28 03:42:21
【问题描述】:

我有一个文本字段,我希望用户能够从下拉框中设置字体。我似乎找不到任何与执行此类操作相关的文档,但它似乎应该是相当微不足道的,所以我假设我只是使用了糟糕的搜索词或其他东西。

我显然可以自己构建下拉框,但我不知道如何获取所有可用字体的列表,其中包括我自己的自定义字体。

【问题讨论】:

  • 我不知道为什么我的回答被否决了,但我绝对建议你去看看。

标签: ios iphone fonts uikit


【解决方案1】:

您可以创建一个字体数组来填充您的下拉列表,如下所示:

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,其中每一行都包含一个字体名称,一旦选择了索引,您就可以在UITableViewDelegatedidSelectRowAtIndexPath: 方法中设置字体,如下所示:

UIFont *currentFont = [UIFont fontWithName:[self.fontNameList objectAtIndex:indexPath.row] size:12];

在这种情况下,我将大小设置为 12,但您可以将其设置为您想要的任何可变浮点值或默认常量浮点。

【讨论】:

  • 这似乎是一个可靠的解决方案,我也想知道为什么它被否决。
  • @Tiddly 刚刚检查过,此代码有效。是的,在网站上的两个人不喜欢我 个月 前提出的问题后,我倾向于每天多次收到一些可疑的否决票哈哈......这并没有打扰我个人(我'不在这里为“点”),但如果他们在错误的原因下降后,别人对别人来说并不是那么伟大,然后不要进一步调查它。 span>
【解决方案2】:

先用familyNames获取字体系列,然后用fontNamesForFamilyName获取不同系列名称的所有字体。

显示名称并通过设置所选字体对用户的选择做出反应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 2014-03-30
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多