テーブル ビューのデフォルトの青色選択をカスタム カラーに変更する必要があります。それを行う方法はありますか。助けて
5 に答える
これを行う最良の方法は次のとおりです。
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"myCellId";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UIView *v = [[[UIView alloc] init] autorelease];
v.backgroundColor = [UIColor redColor];
cell.selectedBackgroundView = v;
}
// Set up the cell...
cell.textLabel.text = @"foo";
return cell;
}
あなたに関連する部分はcell.selectedBackgroundView = v;
指示です。ここの非常に基本的なビュー 'v' を、好きなビューに置き換えることができます。
また、グループ化されたセルのカスタム選択セル ビューを作成しようとすると、この問題に遭遇しました。真ん中のセルがあることを想定して、セルの上、中、下の3種類の画像を作成することで、この問題を解決しました。
NSString *imageFile;
if (row == 0) {
imageFile = @"highlighted_cell_top.png";
} else if (row == ([registeredDetailsKeys count] - 1)) {
imageFile = @"highlighted_cell_bottom.png";
} else {
imageFile = @"highlighted_cell_middle.png";
}
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageFile]];
cell.selectedBackgroundView = imageView;
もっと簡単な方法があるかもしれませんが、結果には満足しています。
ヘッダーで宣言した後に確認してください
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
埋め込む
cell.selectionStyle = UITableViewCellSelectionStyleGray
、、がどこにUITableViewCellSelectionStyleGray
できるか。UITableViewCellSelectionStyleNone
UITableViewCellSelectionStyleBlue
UITableViewCellSelectionStyleGray
カスタムカラーは使えないと思います。ただし、UITableViewCell の次のプロパティを使用できます。
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
選択スタイルは、選択時のセルの色を決定する backgroundView 定数です。デフォルト値は UITableViewCellSelectionStyleBlue です。以来
typedef enum {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;
デフォルトの青から灰色に切り替えるか、色付きの選択をまったく行わないようにすることができます。
それを行う別の方法は、セルの新しいビューに移動することです。任意の色と 50% 程度の不透明度を使用します。-setSelected:animated: 呼び出しを取得すると、このビューをセルに移動します。移動と言うと、実際には常にセルの上にビューを表示できますが、必要に応じて非表示のビットをオンまたはオフにするだけです。