2017-03-09 2 views
0

私はUITableViewに±10の異なるUITableViewCellsがあり、オブジェクト(説明セル、写真セルなど)に関する完全な情報を表示しています。したがって、UITableViewがロードされている場合、私はUITableViewセルを再利用する必要はありません。私が何とかUITableViewCellsを保存してcellForRowAtIndexPathが呼び出されないようにすれば、パフォーマンスは改善されないでしょうか?そうであれば、同様の行動を達成する方法は何ですか?セル数が制限されたUITableView

+0

tableviewControllerに使用できる静的セルがあります。その上でいくつかのRNDを行います。 –

答えて

1

まず、UITableViewを使用する場合、cellForRowAtIndexPathが呼び出されないようにすることはできません。これはUITableViewDataSource関数であり、オプションではありません。そうしないと、テーブルビューにデータを設定できなくなります。

できることは、cellForRowAtIndexPathのindexpath.rowにスイッチケースを使用して必要なセルを返すことです。

+0

yeap。これはどうやってやっているのですか?問題は、再利用する代わりに何らかの形でセルを保存するとスクロールのパフォーマンスが向上するかどうかです。 – JuicyFruit

+1

セルを表示している間に複雑な操作をしている場合や、ネットワークコールを行っていない場合は、パフォーマンスに影響が出るはずです。同じセルがテーブルビュー内の2つの異なる位置/インデックスパスで呼び出され、同時に表示できない(スクロールしない)場合にのみ、セルが再利用されます。 – rv7284

+0

コメントは回答です、ありがとうございます。 – JuicyFruit

0

ストーリーボードのプロトタイプセルを増やすことで試してみることができます。各セルは新しいセル識別子を割り当て、インデックスに一致する識別子の配列をストーリーボードに保持する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:[cellIdArray objectAtIndex:indexPath.row] forIndexPath:indexPath]; 

    return cell; 
} 

注:cellForRowAtIndexpathメソッドが常に呼び出されます

あなたcellForRowAtIndexpathはに減少します。上記の場合、データをストーリーボード自体に入れることができます。 で確認してください。https://www.appcoda.com/sidebar-menu-swift/

関連する問題