假设我正在使用Core Text为iPhone编写文本查看器。每次用户更改基本字体大小时,我都需要计算需要多少页(固定大小的CGRects)才能显示具有给定字体大小的整个NSAttributedString。
我想在单独的NSOperation中执行此操作,以使用户不会遇到不必要的UI滞后。
不幸的是,要计数页面,我需要使用不可见的文本绘制模式绘制框架(CTFrameDraw),然后使用CTFrameGetVisibleStringRange来计数字符。但是要绘制文本,我需要一个CGContext。问题就从这里开始...
我可以通过调用UIGraphicsGetCurrentContext在drawRect中获得CGContext,但是在这种情况下:
还有其他解决方案吗?在工作线程中创建单独的CGContext?如何? CGBitmapContext?我如何确定所有条件(我不知道,分辨率?等)都将与drawRect的CGContext中的相同,以便正确计数页面?
最佳答案
从CTFrameGetVisibleStringRange获取结果之前不需要CTFrameDraw