AttributedString icon indicating copy to clipboard operation
AttributedString copied to clipboard

挺喜欢这个库,但是使用的时候遇到了一些问题

Open yzjzmn opened this issue 3 years ago • 15 comments

3.3.3版本性能问题,加载多条会明显卡顿

iOS12使用action会crash

title包含emjio表情通过索引匹配不准确

yzjzmn avatar Oct 11 '22 10:10 yzjzmn

iOS12使用action会crash 在3.3.4版本中已修复 其他问题我看一下

lixiang1994 avatar Oct 12 '22 03:10 lixiang1994

3.3.3版本性能问题,加载多条会明显卡顿 具体从哪方面体现的?

lixiang1994 avatar Oct 12 '22 03:10 lixiang1994

title包含emjio表情通过索引匹配不准确这个也麻烦提供一下示例 🙏🏻

lixiang1994 avatar Oct 12 '22 03:10 lixiang1994

Table列表中大量使用ASAtteibutedString,会卡顿

因为之前12.0系统添加action有crash,于是升级了pods版本到3.3.3,于是反应会卡顿

然后通过instruments定位到问题在设置label.attributed.text,后来pod版本切回2.2.2版本,卡顿明显消失

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: LEE @.> 发送时间: 2022年10月12日 11:20 收件人: lixiang1994/AttributedString @.> 抄送: YangZJang @.>, Author @.> 主题: Re: [lixiang1994/AttributedString] 挺喜欢这个库,但是使用的时候遇到了一些问题 (Issue #52)

3.3.3版本性能问题,加载多条会明显卡顿 具体从哪方面体现的?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

yzjzmn avatar Oct 12 '22 03:10 yzjzmn

 抱歉,这个是别的同事反馈的问题,描述不准确,包含emoji的文本,通过Range添加参数之后,文本会被替换成⍰,应该是emoji版本不对的问题

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: LEE @.> 发送时间: 2022年10月12日 11:20 收件人: lixiang1994/AttributedString @.> 抄送: YangZJang @.>, Author @.> 主题: Re: [lixiang1994/AttributedString] 挺喜欢这个库,但是使用的时候遇到了一些问题 (Issue #52)

title包含emjio表情通过索引匹配不准确这个也麻烦提供一下示例 🙏🏻

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

yzjzmn avatar Oct 12 '22 03:10 yzjzmn

同样的两个问题,我这边的情况是

  1. 语音社交类应用,房间聊天列表信息有大量富文本, 用户a 赠与用户b 礼物【礼物图片】 这 5段富文本拼接,当大量出现的时候会很卡, 现在我不用三方,自己写富文本很流畅,后续有空我再弄个demo上来
  2. 有部分emoji 不能识别,会被截半,显示⍰

propertyChen avatar Oct 12 '22 11:10 propertyChen

同样的两个问题,我这边的情况是

  1. 语音社交类应用,房间聊天列表信息有大量富文本, 用户a 赠与用户b 礼物【礼物图片】 这 5段富文本拼接,当大量出现的时候会很卡, 现在我不用三方,自己写富文本很流畅,后续有空我再弄个demo上来
  2. 有部分emoji 不能识别,会被截半,显示⍰

麻烦了🙏🏻

lixiang1994 avatar Oct 12 '22 11:10 lixiang1994

关于字符串包含emoji使用NSRange出现乱码问题,最终查到Swift的count返回的只是Unicode字符个数,所以在去长度和下标的时候 要用 string.utf16.count 具体参考:https://blog.csdn.net/song_bin/article/details/123855303

yzjzmn avatar Nov 01 '22 07:11 yzjzmn

另外发现在富文本中添加段落不生效的问题,这是我的使用方式: let protocolAttri: ASAttributedString = .init(string: RString.loginOfTermsOfService(), .foreground(UIColor(hex: 0x2DCDFF)), .action([.foreground(UIColor(hex: 0x2DCDFF))]) { [weak self] in self?.clickProtocolAction() }) let tempText: ASAttributedString = .init(string: RString.loginOfAnd()) let policyAttri: ASAttributedString = .init(string: RString.loginOfPrivacyPolicy(), .foreground(UIColor(hex: 0x2DCDFF)), .action([.foreground(UIColor(hex: 0x2DCDFF))]) { [weak self] in self?.clickPolicyAction() }) var showTitle = protocolAttri + tempText + policyAttri showTitle.add(attributes: [.paragraph(.lineSpacing(6), .alignment(.left), .minimumLineHeight(22)), .font(PingFangSC.regular.size(14))])

最终showTitle添加段落并不生效

yzjzmn avatar Nov 01 '22 07:11 yzjzmn

同样的两个问题,我这边的情况是

  1. 语音社交类应用,房间聊天列表信息有大量富文本, 用户a 赠与用户b 礼物【礼物图片】 这 5段富文本拼接,当大量出现的时候会很卡, 现在我不用三方,自己写富文本很流畅,后续有空我再弄个demo上来
  2. 有部分emoji 不能识别,会被截半,显示⍰

使用range的时候计算长度和下标用string.utf16.count就可解决

yzjzmn avatar Nov 01 '22 07:11 yzjzmn

👍🏻👍🏻👍🏻👍🏻👍🏻 晚些我会发布新版本, 非常感谢 @yzjzmn

lixiang1994 avatar Nov 03 '22 02:11 lixiang1994

@yzjzmn @propertyChen 方便提供一些emoji的示例吗? 我看了一下内部使用的都是NSAttributedStringNSRange, 似乎不存在string.count的问题

lixiang1994 avatar Nov 03 '22 09:11 lixiang1994

image

lixiang1994 avatar Nov 03 '22 09:11 lixiang1994

image

如你的代码: var string: ASAttributedString = "1111😄😄😄2222" string.add(attributes: [.action(action), RSRange:(RSRange(4,3))])

因为使用了Range(4,3) 这三个😄符号会变成⍰,因为很多创建Range的时候会用到String.count计算下标和长度

关于字符串包含emoji使用NSRange出现乱码问题,最终查到Swift的count返回的只是Unicode字符个数,所以在去长度和下标的时候 要用 string.utf16.count 具体参考:https://blog.csdn.net/song_bin/article/details/123855303

yzjzmn avatar Nov 15 '22 07:11 yzjzmn

image

如你的代码: var string: ASAttributedString = "1111😄😄😄2222" string.add(attributes: [.action(action), RSRange:(RSRange(4,3))])

因为使用了Range(4,3) 这三个😄符号会变成⍰,因为很多创建Range的时候会用到String.count计算下标和长度

关于字符串包含emoji使用NSRange出现乱码问题,最终查到Swift的count返回的只是Unicode字符个数,所以在去长度和下标的时候 要用 string.utf16.count 具体参考:https://blog.csdn.net/song_bin/article/details/123855303

我还是没复现出来 image image

lixiang1994 avatar Nov 15 '22 09:11 lixiang1994