200 のセクションに約 400 のセルを持つ UITableView がありますが、ユーザーの操作 (スクロール、セルの選択) への応答が少し遅いです。遅くするために何か特別なことをしているとは思いません。セルとヘッダーには、背景画像とテキストのみがあります。他の誰かがこの種の問題を抱えていましたか?それを少し速く実行する方法を知っていますか?
編集:これについて有益なフィードバックが欲しいので、報奨金を提供します。答えが私のコードの問題にあるとは思いません。代わりに、より高速に実行できるように UITableView を再設計する戦略を探しています。私は新しいコードを追加することに完全にオープンであり、皆さんの意見を聞くのを楽しみにしています.
シミュレーターと私のデバイスである iPhone 4 の両方で動きの鈍さが見viewForHeaderInSection
られcellForRowAtIndexPath
ますUITableViewDelegate
。セルとヘッダー ビューを再利用しています。
- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger) section
{
HaikuHeaderView* view= [m_sectionViews objectAtIndex:section];
NSMutableArray* array= [m_haikuSearch objectAtIndex:section];
Haiku* haiku= [array objectAtIndex:0];
[view.poetLabel setText:[haiku nameForDisplay]];
return view;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.backgroundView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell gradient2.png"]];
// (Set up a bunch of label attributes in the cell...)
}
NSMutableArray* array= [m_haikuSearch objectAtIndex:indexPath.section];
Haiku* haiku = [array objectAtIndex:indexPath.row];
cell.textLabel.text = [haiku.m_lines objectAtIndex:0];
return cell;
}