0

注:セルの背景色を変更する場合(UIViewで宣言されたbackgroundColorプロパティを使用してセルの背景色を設定することにより)、tableViewではなくデリゲートのtableView:willDisplayCell:forRowAtIndexPath:メソッドで変更する必要があります。 :cellForRowAtIndexPath:データソースの。グループスタイルのテーブルビューのセルの背景色を変更すると、iOS 3.0では、以前のバージョンのオペレーティングシステムとは異なる効果があります。長方形の外側の領域ではなく、角の丸い長方形の内側の領域に影響するようになりました。

cellForRowAtIndexPathでセルの背景色を変更しても、グループセルでは正常に機能しますが、プレーンスタイルのセルでは何も実行されないことに気付きました。

誰かがデザインの決定を説明できますか?

それでも、cell.contentViewの背景色を変更しても機能します。

注:UIViewを配置し、カスタムTableViewセルに背景を設定するだけの回避策を認識しています。私は理由を尋ねていますが、それを修正する方法は尋ねていません。

4

1 に答える 1

0

Apple がテーブルの背景で背景を上書きしているようです。

背景を実際に変更するには、オーバーライドの後にそれを行う必要があります。つまり、次のようになります。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }

私は試してみましたが、うまくいきます。

于 2012-12-03T05:09:49.433 に答える