原帖地址
優(yōu)化點(diǎn):
1瞧栗、對(duì)象創(chuàng)建
能使用輕量級(jí)的對(duì)象就不需要使用高級(jí)的,可以優(yōu)化性能海铆。CALayer比UIView性能好迹恐。對(duì)象的操作如果不涉及UI操作,應(yīng)該盡量放在后臺(tái)線程中做卧斟。在性能要求高的情況下Storyboard不是好的選擇殴边。
2、對(duì)象調(diào)整
避免對(duì)象的調(diào)整唆涝,諸如View的移動(dòng)找都,frame的更改之類唇辨。
3廊酣、對(duì)象銷毀
銷毀性能損耗不多,但是極少成多赏枚,可以放到后臺(tái)亡驰。
NSArray *tmp = self.array;
self.array = nil;
dispatch_async(
? ? ? ? ? [tmp release];
);
4、布局計(jì)算
Autolayout在視圖多了的情況很消耗性能饿幅,盡可能的少用凡辱?(有些疑問,如果不用這個(gè)計(jì)算frame的方法呢栗恩?)具體數(shù)據(jù)可以看這個(gè)文章:http://pilky.me/36/透乾。可以使用一些工具調(diào)整fram:ComponenKit磕秤、AsyncDisplayKit.
5乳乌、文本計(jì)算
復(fù)雜文本的寬高計(jì)算問題,用[NSAttributedString boundingRectWithSize:Options:context:]計(jì)算文本市咆,然后用[NSttributedString drawWithRect:Options:context]繪制文本汉操。
6、文本繪制
使用CoreText自定義控件蒙兰。
7磷瘤、圖片
圖片解碼:CGBitmapContent在后臺(tái)線程解碼圖片
圖像繪制:
- (void)display {
dispatch_async(background,^{
CGContentRef ctx = CGBitmapContextCreate;
// draw
CGImageRef img = CGBitmapContextCreateImage(ctx);
CFRelease(ctx);
dispatch_async(mainQueue,^{
layer.content = img;
});
});
}