1

作成中の MonoTouch アプリでカスタム UITableViewCell を作成しました。セル内で私は正常に設定しています:

Accessory = UITableViewCellAccessory.DisclosureIndicator;

ただし、AccessoryView の背景色を変更しようとすると、AccessoryView が null であるため、アプリがクラッシュします。

AccessoryView.BackgroundColor = UIColor.White;

実際のところ、null でないセル内の唯一のビューは ContentView です。

AccessoriesView が Null である理由を知っている人はいますか?

4

2 に答える 2

3

AccessoryおよびAccessoryViewプロパティは関連していますが、相互に変更することはありません。

で独自のカスタムビューを設定するとAccessoryView、の値はAccessory無視されUITableViewCellます。

AccessoryViewがNullである理由を誰かが知っていますか?

同様に、を設定すると、 (プロパティを介して)ストックビューにアクセスできAccessoryなくなり、サポートされている場合のイベント(たとえば、のタッチイベント)がセルになります(ビューにアクセスできないため)。AccessoryViewDisclosureButton

カスタムの外観のアクセサリビューが必要な場合は、自分で作成してAccessoryViewプロパティに割り当てることができます。

于 2012-07-25T01:22:22.393 に答える
1

私の最初の問題は、セルにアクセサリを追加していたが、そのアクセサリの背景がセルの残りの背景と同じではないということでした。基になるテーブルビューの背景を取得していましたが、これは私が望んでいたものではありませんでした。AccessoriesView.Background の色を私が望むものに設定しようとしたとき (それが犯人だと思って)、AccessoryView は null でした。

私の問題を解決するために最終的に行ったことは、必要な背景色で新しい UIView を作成し、それをセルの BackgroundView として設定することでした (これも最初は null だったため)。これで問題が修正され、セルのどこにでも適切な色が表示されます。

于 2012-07-26T05:12:24.933 に答える