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