加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – NSAttributedString和emojis:位置和长度问题

发布时间:2020-12-14 05:32:15 所属栏目:百科 来源:网络整理
导读:我正在使用NSAttributedString为来自API的文本的某些部分(在Twitter上认为“@mention”)着色. API为我提供了文本和一组实体,这些实体表示应该着色的文本部分(或链接,标签等). 但有时,由于表情符号,颜色会被抵消. 例如,使用此文本: “@ericd Some text. @ape
我正在使用NSAttributedString为来自API的文本的某些部分(在Twitter上认为“@mention”)着色.

API为我提供了文本和一组实体,这些实体表示应该着色的文本部分(或链接,标签等).

但有时,由于表情符号,颜色会被抵消.

例如,使用此文本:

“@ericd Some text. @apero”

API给出:

[
{
“text” : “ericd”,
“len” : 6,
“pos” : 0
},
{
“text” : “apero”,
“pos” : 18
}
]

我使用NSRange成功转换为NSAttributedString:

for m in entities.mentions {
    let r = NSMakeRange(m.pos,m.len)
    myAttributedString.addAttribute(NSForegroundColorAttributeName,value: someValue,range: r)
}

我们看到“pos”:18是正确的,这是“@apero”开始的地方.正如预期的那样,彩色部分是“@ericd”和“@apero”.

但是当在文本中使用表情符号的某些特定组合时,API不能很好地转换为NSATtributedString,颜色是偏移的:

“@ericd Some text.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读