1.不要一次性创建所有的subview,而是需要时才创建.合理使用 懒加载
比如NSDateFormatter 和 NSCalendar这种高开销对象
static NSDateFormatter *cachedDateFormatter = nil;
+ (NSDateFormatter *)cachedDateFormatter {
if (!dateFormatter) {
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat: @“YYYY-MM-dd HH:mm:ss”];
}
return dateFormatter;
}
2.不要频繁的刷新页面,能刷新1行cell最好只刷新一行,尽量不要使用reloadData.
//刷新一组
NSIndexSet* indexSet = [[NSIndexSetalloc]initWithIndex:1];
[self.myTableViewreloadSections:indexSetwithRowAnimation:UITableViewRowAnimationAutomatic];
//刷新一行
NSIndexPath*indexPath=[NSIndexPathindexPathForRow:1inSection:0];
[self.myTableViewreloadRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationNone];
3.选择正确的集合
NSArray,使用index来查找很快(插入和删除很慢)
字典,使用键来查找很快
NSSets,是无序的,用键查找很快,插入/删除很快
4.重用
UITableView和UICollectionView复用
5.缓存所有需要的
服务器相应结果的缓存(图片)
复杂计算结果的缓存(UITableView的行高)
重复使用的下拉框省市区等