2

UITableViewController の nib ファイルから UITableView セルを読み込んでいますが、Interface Builder で設定した背景色が表示されません。なぜだめですか?

4

1 に答える 1

2

Appleが iOS 用 Table View Programming Guide でtableView:willDisplayCell:forRowAtIndexPath:推奨しているように、背景色を設定するために使用する必要があります。

テーブル ビューtableView:willDisplayCell:forRowAtIndexPath:は、行を描画する直前にデリゲートにメッセージを送信します。デリゲートがこのメソッドを実装することを選択した場合、セル オブジェクトが表示される前に最後の変更を行うことができます。このメソッドでは、デリゲートは、コンテンツではなく、選択範囲や背景色など、テーブル ビューによって以前に設定された状態ベースのプロパティのみを変更する必要があります。

このコードは、交互の「ゼブラ ストライプ」効果を実行します。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row % 2 == 0) {
        UIColor *altCellColor = [UIColor colorWithWhite:0.7 alpha:0.1];
        cell.backgroundColor = altCellColor;
    }
}
于 2013-04-24T00:44:51.493 に答える