UITableViewCell AccessoriesDisclosureIndicator を黒い背景に表示するにはどうすればよいですか?
-
05-07-2019 - |
質問
cell.accessoryType = UITableViewCell AccessoriesDisclosureIndicator;
この方法では
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
しかし、そのセルを選択した場合にのみ表示され、それ以外の場合は表示されません。背景が白の場合は完全に機能します。プロパティを設定する必要があることは確かですが、これを機能させるためにどのプロパティを変更する必要があるかわかりません。
前もって感謝します。
乾杯。
解決
開示インジケーターは灰色のハイアルファ画像であるように見えるため、それを黒い背景にオーバーレイすると見えなくなります。これを行うには、独自の UIImageView をセルの contentView に追加する必要があります。
他のヒント
私もこれと同じ問題に遭遇しました。自由にコピーできる次の急造モックアップ グラフィックを使用して、UIView の imageWithName @"AccDisclosure.png" から UIImageView を作成するだけです。 http:// Thinkingman.com/db/downloads/AccDisclosure.png (このリンクをクリックしただけでは、背景が透明な白い画像なのでおそらく何も表示されませんが、保存して暗い背景で表示すると、アルファが表示されます)。
次のコードを使用すると、テーブル行の矢印の先端の背景色を設定できます。
@property (nonatomic,retain) UILabel *backgroundLabel;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.backgroundColor = [UIColor orangeColor];
self.backgroundLabel = label;
[self.contentView addSubview:label];
[label release];
CGRect labelRect = CGRectOffset(contentRect,0, 0);
labelRect.size.height = contentRect.size.height - 1; // show white line
labelRect.size.width = contentRect.size.width + 50; // cover arrow tip background
backgroundLabel.frame = labelRect;
backgroundLabel.highlightedTextColor = [UIColor whiteColor];
通常の方法でaddSubViewを使用してImageViewを追加し、アクセサリが表示される位置に黒ではない画像(私の場合は灰色の塗りつぶされた円)を使用するソリューションを作成しました。
これにより、矢印が表示され、表セルの背景色が暗い/黒のままになります。
最もコーシャなソリューションではないかもしれませんが、矢印が表示されるようになり、サブクラス化したり、多くのコードを記述したりせずに、アクセサリのクリックの通知が届きます。