3

UITableViewの見栄えを良くするには、各セルの背景色を交互に変更する必要があります。
背景色を直接変更できなかったため、セルの背景にUILabelを追加してから、次の手順を実行しました(cellForRowAtIndexPathメソッドで)。

// Set cell color
if(indexPath.row % 2 == 0){
    UIView *bckView = (UIView *)[cell viewWithTag:100];
    bckView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:243.0/255.0 blue:1.0 alpha:1.0];
}

リストを初めて表示すると、見栄えがよくなります(最初のセルは水色、2番目は白、3番目は水色...)。しかし...私がリストを数回再生して移動し、実行すると、セルの背景色が混ざりました。これはセルが再利用されているという事実に関連していると確信していますが、これを解決する方法がわかりません。何か案が ?

4

3 に答える 3

9

else再利用されたセルに対して前回設定した色を予測できないため、他の色を設定する必要があります。

于 2012-08-10T23:32:43.630 に答える
3

背景色を他の色に設定するifステートメントにelse部分を追加します。

于 2012-08-10T23:32:53.187 に答える
2

別の方法で色を設定するには、ifと一緒に他の色を使用する必要があります。そうしないと、最終的にすべてのセルが同じ色になります。

また、if(!cell)またはif(cell == nil)コードブロック内にそのメソッドしかない場合、デキューされたセルを表示するときに呼び出されません。したがって、毎回呼び出されるブロック内にあることを確認する必要があります。

于 2012-08-11T00:44:14.353 に答える