1
nullcc 2015-07-20 11:20:52 +08:00
没看过你的代码不是很清楚,参考我以前写的这方面的代码,计算高度的时候创建的typesetter要记得CFRelease掉,另外要在主线程里setNeedsDisplay。
|
2
wdxz5586 2015-07-20 11:21:45 +08:00 1
CoreText 和 CoreGraphics 都是线程安全的,可以不在主线程做排版和渲染。AsyncDisplayKit 很优雅地封装了这种操作,可以参考参考。
|
5
nullcc 2015-07-20 11:36:09 +08:00
唐巧有写过一个coretext排版引擎,开源的,可以参考下
|
6
yfmir 2015-07-20 11:55:49 +08:00
可以尝试UILabel + NSAttributedString
|
7
chmlai 2015-07-20 12:05:48 +08:00
简单的就是在后台把要显示的东西绘制到一个图片上去然后 dispatch 到UI 线程显示图片就行了.
|
8
joeytat 2015-07-20 12:23:18 +08:00
只是表情的话,NSAttributedString + NSTextAttachment 就可以了。之前撸过一个类似的小东西 https://github.com/joeytat/JTATEmoji
|
10
kobe1941 OP |
12
qq2511296 2015-07-20 13:02:38 +08:00 1
@kobe1941 自定义表情也可以用NSTextAttachment 就一张小图片而已 NSTextAttachment可以插入图片
|
13
ibremn 2015-07-20 13:55:00 +08:00
所有能后台线程完成的操作,都放到后台线程去做。
拿显示微博举个例子: 1.发起网络请求,开始转圈圈。 2. 获取到JSON数据后,在后台线程里解析成数据模型,随后创建CoreText对象、计算每个Cell的高度,保存到一个中间模型去(比如每个 Cell 对应一个 CellLayout)。 3.停止转圈圈,更新 TableView。 4.在 Cell 需要更新时,传入 CellLayout 来显示。 5.在需要绘制文本时,先清空文本 label.layer.contents, 在后台线程创建 BitmapContext,用CoreText绘制为图片,然后转到主线程来把图片更新到 label.layer.contents 去。 或者。。直接用 AsyncDisplayKit 吧。。原理类似。。 |
18
loveuqian 2015-07-20 15:44:01 +08:00 via iPhone
今天才刚学自定义cell。。。
|