我正在尝试使用 FontAwesome 在单个字符串中显示一些文本和一个图标.
这是我的:
NSString *icon = [NSString fontAwesomeIconStringForIconIdentifier:@"icon-map-marker"];
NSString *locationString = [NSString stringWithFormat:@"%@ %@", icon, otherNormalString];
基本上我想让 map 标记显示在所显示位置的前面。使用 FontAwesome 应该会使这变得非常简单,但我不能让它正常工作。
如果我 NSLog 字符串图标,这也是显示的内容:
关于如何正确完成此操作的任何想法?
最佳答案
字符串不携带任何样式信息(包括字体)。为了包含字体信息,您需要创建一个 NSAttributedString
。所有这些 -fontAwesomeIconStringForIconIdentifier
方法所做的就是在给定标识符的情况下返回一个 unicode 值。
假设您使用的是 ios-fontawesome ,你会想做这样的事情:
... your locationString assignment ...
NSMutableAttributedString *astring = [[NSMutableAttributedString alloc] initWithString:locationString];
[astring addAttribute:NSFontAttributeName
value:[UIFont iconicFontOfSize:size]
range:NSMakeRange(0,1)]; // The first character
然后您可以将属性字符串分配给标签的 attributedText
属性,或类似地显示它。
关于iOS FontAwesome 在另一个字符串中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20894697/