gpt4 book ai didi

iphone - 核心文本: counting pages in background thread

转载 作者:行者123 更新时间:2023-12-03 20:16:49 33 4
gpt4 key购买 nike

假设我正在使用 Core Text 为 iPhone 编写文本查看器。每次用户更改基本字体大小时,我都需要计算需要多少页(固定大小的 CGRect)来显示具有给定字体大小的整个 NSAttributedString。

我想在单独的 NSOperation 中执行此操作,以便用户不会遇到不必要的 UI 滞后。

不幸的是,要计算页面数,我需要使用不可见文本绘制模式绘制框架 (CTFrameDraw),然后使用 CTFrameGetVisibleStringRange 来计算字符数。但要绘制文本,我需要 CGContext。问题就从这里开始了......

我可以通过调用UIGraphicsGetCurrentContext在我的drawRect中获取CGContext,但在这种情况下:

  1. 我必须使用 PerformSelectorOnMainThread 调用对 CGContext 进行操作的任何方法,对吗?
  2. 其他线程应该 CF 保留此上下文。在drawRect方法之外使用drawRect的CGContext是否可以接受?

还有其他解决方案吗?在工作线程中创建单独的CGContext?如何? CGBitmapContext?我怎样才能确保所有条件(我不知道,分辨率?等)都与drawRect的CGContext中的相同,以便正确计算页面数?

最佳答案

在从 CTFrameGetVisibleStringRange 获取结果之前,您不需要 CTFrameDraw

关于iphone - 核心文本: counting pages in background thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3212716/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com