0

UITableViewCellディスプレイ全体がで描かれている顧客がいますdrawRect。描画するとCGLayers、何かが変更されたときに特定の部分を再利用できるように作成されます。

UITableViewCellSelectionStyleデフォルトで選択されたビューが図面を覆いたくないので、「なし」に変更しました。

私の問題は、自分のセルを呼び出すことですがsetNeedsDisplaysetSelected:animated:呼び出さdrawRectれるsetSelected:animated:までに、セルの選択を解除するためにすでに再度呼び出されています。私のテーブルビューコントローラーでは、Appleのアドバイスに従って didSelectRowAtIndexPath電話をかけます。deselectRowAtIndexPath

編集-テーブルビューコントローラーからセルでsetNeedsDisplayを呼び出そうとしました(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPathが、何も変わりませんでした。

何か案は?ありがとう。

4

1 に答える 1

5

テーブルセルのselectedBackgroundViewプロパティを使用します。カスタムビューをそれに割り当てると、デフォルトの選択の背景と同時に表示および非表示になります。つまり、セル自体のsetNeedsDisplay呼び出しを回避するのを待つ必要はありません。drawRect:

于 2010-04-12T12:05:02.377 に答える