CoreText比Text Kit更快吗?

时间:2015-03-13 22:51:17

标签: ios uitableview uicollectionview core-text textkit

如果我有多个自定义UITableViewCells或带有多个标签和UI元素的UICollectionViewCells,并且保持良好的滚动速度至关重要,那么CoreText是否会比TextKit更快的解决方案?

2 个答案:

答案 0 :(得分:2)

在不知道细节的情况下,不能回答这个问题。如果您想知道您必须编写代码的两个版本并测量哪个版本更快。在你完成之前,答案永远是"它取决于"。

最好的建议是从更高级别的API(本例中为Text Kit)开始,看看性能是否足够好。如果是,那么忘记这个问题。如果没有启动分析器并找出需要改进的地方,可能会在稍后回来询问有关如何优化的具体问题。

答案 1 :(得分:2)

TextKit构建于CoreText之上。使用更高级API的开销可以忽略不计。

事实上,在很多情况下,TextKit类是免费的桥接到他们的CoreText等价物(就像FoundationNSStringNSDictionary是免费的桥接他们的CoreFoundation同行。例如:NSParagraphStyle免费桥接到CTParagraphStyle

NSMutableParagraphStyle *paragraphStyle = 
    [[NSMutableParagraphStyle alloc] init];

paragraphStyle.alignment = NSTextAlignmentRight;

CTTextAlignment alignment;
CTParagraphStyleGetValueForSpecifier((CTParagraphStyleRef)paragraphStyle,
                                     kCTParagraphStyleSpecifierAlignment,
                                     sizeof(CTTextAlignment),
                                     &alignment);

NSAssert(alignment == kCTTextAlignmentRight, @"!!");

在大多数情况下,您最终会编写大量样板来访问CoreText API。 TextKit为您处理了很多这样的事情。

底线,尽可能使用TextKit。如果使用TextKit无法获得结果,请使用CoreText。