Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
yzjzmn opened this issue Oct 11, 2022 · 15 comments
Open

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

yzjzmn opened this issue Oct 11, 2022 · 15 comments

Comments

@yzjzmn
Copy link

yzjzmn commented Oct 11, 2022

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

iOS12使用action会crash

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

@yzjzmn yzjzmn changed the title 一些问题 挺喜欢这个库,但是使用的时候遇到了一些问题 Oct 11, 2022
@lixiang1994
Copy link
Owner

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

@lixiang1994
Copy link
Owner

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

@lixiang1994
Copy link
Owner

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

@yzjzmn
Copy link
Author

yzjzmn commented Oct 12, 2022 via email

@yzjzmn
Copy link
Author

yzjzmn commented Oct 12, 2022 via email

@propertyChen
Copy link

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

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

@lixiang1994
Copy link
Owner

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

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

麻烦了🙏🏻

@yzjzmn yzjzmn closed this as not planned Won't fix, can't repro, duplicate, stale Nov 1, 2022
@yzjzmn yzjzmn reopened this Nov 1, 2022
@yzjzmn
Copy link
Author

yzjzmn commented Nov 1, 2022

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

@yzjzmn
Copy link
Author

yzjzmn commented Nov 1, 2022

另外发现在富文本中添加段落不生效的问题,这是我的使用方式:
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
Copy link
Author

yzjzmn commented Nov 1, 2022

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

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

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

@lixiang1994
Copy link
Owner

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

@lixiang1994
Copy link
Owner

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

@lixiang1994
Copy link
Owner

image

@yzjzmn
Copy link
Author

yzjzmn commented Nov 15, 2022

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

@lixiang1994
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants