iOS FontAwesome 在另一个字符串中间

标签 ios nsstring uilabel font-awesome

我正在尝试使用 FontAwesome 在单个字符串中显示一些文本和一个图标.

这是我的:

NSString *icon = [NSString fontAwesomeIconStringForIconIdentifier:@"icon-map-marker"];

NSString *locationString = [NSString stringWithFormat:@"%@ %@", icon, otherNormalString];

基本上我想让 map 标记显示在所显示位置的前面。使用 FontAwesome 应该会使这变得非常简单,但我不能让它正常工作。

如果我 NSLog 字符串图标,这也是显示的内容:

enter image description here

关于如何正确完成此操作的任何想法?

最佳答案

字符串不携带任何样式信息(包括字体)。为了包含字体信息,您需要创建一个 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/

相关文章:

nsstring - iOS 6 和 iOS 5 中的文本对齐

xcode - 调整标签大小以适应文本量 - Swift

iphone - 可变高度 UILabel

ios - 处理添加到钱包 Apple Pay 的信用卡

android - 如何在 xamarin 移动应用程序中使用/安装客户端证书

iphone - iPad 中的 FBWebDialog 旋转问题

ios - 添加后表未更新

objective-c - stringByReplacingOccurrencesOfString 循环?

ios - 我的正则表达式在 obj-c 中每次都返回 nil,包括示例代码

ios - UILabel 重绘 View 。如何避免这种行为?