1.提高tableview的流畅性主要是从两方面着手:提高cell的渲染速度以及展示速度。(可以用CoreAnimation这个工具对每秒渲染的帧数来测量),最理想的测量结果是60fps,通常的渲染速度是55-60fps。另一方面减少cell的准备时间也能很好的提高tableview滑动的流畅性。根据测量结果没准备一个cell需要消耗10毫秒左右的时间。所以我们要想法降低准时.在使用[UIImage imageNamed:picname]和[[UIImage alloc] initWithContentsOfFile:name]、[[UIImage alloc] initWithData:Data]我们一定要注意他们的区别,前者做了一项很重要的工作就是它将所加载的图像在内存中进行了缓存,当你再次调用的时候直接从内存中复用。但是该方法只能加载bundle中的图像而不能加载网络中图像。后面的两个方法操作系统通常不做缓存操作。因此有必要创建一个dictionary来缓存图片。
-(UIImage *)imageWithName:(NSString*)name
{
if[[self.imageDictionary objectForKey:name]
return [self.imageDictionary objectForKey:name];
UIImage * image = [[UIImage alloc] initWithContentsOfFile:name];
[self.imageDictionary setObject:image forKey:name];
return image;
}
通过这个方法我们可以发现渲染速度明显的得到了提高。
复用UITableViewCell
对于ios来说,创建一个cell比复用一个cell更消耗cpu的资源,因为我们一定要注意cell的复用问题。
-(UITableViewCell *)tableView:(UITableView *)tabelView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell = [tableviewdequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
通过IB对cell进行定制的时候我们通常会忘记对属性进行更改
从nib文件中加载cell的方法:最完美的写法
代码定制cell。重定义cell的方法
如何使用自定义的cell
当cell中含有复杂的控件的时候我们使用子视图往往会使tableview的性能得到降低,这时候我们可以考虑使用drawRect方法来重新绘制,因为利用GPU(图形处理器)将会负责个性化的绘制代码,GPU渲染和显示UI的速度极快。
详情参考网盘中的DrawingCellViewController Demo