ios - 是 scrollRangeToVisible(_ :) considered slow if a large attributed text is set in UITextView?

标签 ios swift uikit

我有一个关于考虑在 UITextView 中滚动到底部的性能和良好实践的问题。

例如,我有一个 UITextView,它显示具有特定字体和颜色的属性文本,如日志消息。请注意,日志文本最多可包含 50.000 条日志。每次我将新日志(新属性字符串)附加到现有 UITextView attributedText 属性时,我都需要滚动到底部。

下面的函数运行良好:

private func scrollLogTextViewToBottom() {
    let bottomRange = NSRange(location: textView.text.lengthOfBytes(using: .utf8), length: 0)
    textView.scrollRangeToVisible(bottomRange)
}

当 UITextView 有大量日志时,我担心调用此函数滚动到底部的性能和潜在内存(或其他资源问题),比方说 50.000?是否有更快/性能更友好的解决方案来为每个添加的日志滚动到底部,总是调用以获取整个 UITextView 的范围?

最佳答案

那么,每次追加一条新日志(一段文本)时,它会作为一个完整的文本(没有任何分隔)追加到textview的文本中吗?我想这是一个很好的解决方案。

关于ios - 是 scrollRangeToVisible(_ :) considered slow if a large attributed text is set in UITextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57288494/

相关文章:

swift - 如何根据标签文本快速更改 CollectionView 单元格宽度

cocoa-touch - 启用预览和分页的 UICollectionView

ios - 在纯编程的 swift ios 应用程序中创建和利用可重用组件的策略? (UIKit 不是 SwiftUI)

ios - ScrollToItemAtIndexPath 有时不起作用

ios - 使用 Apple 按钮登录 Apple 标志显得很小

ios - 如何使用 NSURLSession 正确发送异步请求?

ios - 如何将按钮添加到 UITableView 页脚 View 但保留最后一个单元格分隔符?

swift - 从 Firestore 实时更新数组

iphone - 为什么 Apple 不允许 UINavigationController 的子类化?除了子类化之外,我还有哪些选择?

ios - YALFoldingTabBarController 根据所选的 ViewController 更改 centerButtonImage