2012-02-20 11 views
16

- (void)prepareForReuseというこのメソッドが見つかりました。私はread the documentしかし、私はそれを使用する方法を理解していません。prepareForReuseメソッドの使用方法

テーブルビューをスクロールすると、スクロールが遅くなったりスクロールが遅くなり、prepareForReuseを使用する予定です。誰かが私に良いチュートリアルを指摘したり、私が学ぶことができるように私にいくつかのサンプルコードを教えてください。

申し訳ありません申し訳ありません私の作業を示すためのコードはありません。

+1

私は 'prepareForReuse:'があなたのパフォーマンスの問題を解決するとは思っていません... – JustSid

+0

それは何のために使うのですか? – shajem

+0

'UITableViewCell'をクリアするには、' UITableView'に再度表示される前にリセットしたいコンテンツをクリアしてください。独自のコントロールで独自のサブクラスを作成し、直接呼び出すことは絶対に避けてください。 – JustSid

答えて

16

prepareForReuseメソッドは、現在必要でないセルの所有テーブルビューによって呼び出されます。アルファ値などをリセットするようなカスタムセルでは、ここでマイナーなクリーンアップを行うことになっているので、後で再利用できます。あなたはそれを自分で呼ぶべきではありません。

カスタムテーブルビューセルを実装する場合は、これを気にする必要があります。クリーンアップを行うために上書きします。

あなたは単にtableView:cellForIndexPath:に再利用識別子を使用して、それを「使用」している:

static NSString *CellIdentifier = @"Identifier"; 

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
            reuseIdentifier:CellIdentifier]; 
    [cell autorelease]; 
    // Set up your cell 
} 

さらにあなたのテーブルビューのパフォーマンスを向上させるために、質問を参照Tricks for improving iPhone UITableView scrolling performance?

11

あなたがロジックを持っている場合は、それを使用しますセルプロパティを変更したり変更したりしないカスタムセルクラス。あなたのテーブルがあなたのセルを呼び出しますが、いくつかのケースでは、背景色を変更することができますが、場合によってはそれがないし、あなたが設定したデフォルトを使用している場合たとえば、あなたは

-(void)prepareForReuse{ 
    [super prepareForReuse]; 

    // Then Reset here back to default values that you want. 
} 

を実装する必要がありますそれ以外の場合は、ロジックが変更していない場合に設定した以前の値を再利用できます。

+2

"再使用"される他のセルがデフォルトオプションのままである間に、変更されたセルが変更されないように設定するにはどうすればよいですか? – lukaivicev

+0

@lukesIviあなたの質問に対する解決策を見つけられましたか? – dnadri

関連する問題