テーブルビューの選択の色を変更する必要があります
質問
テーブルビューのデフォルトの青色選択をカスタム色に変更する必要があります。それを行う方法はありますか。助けて
解決
これを行う最良の方法は次のとおりです。
// 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」を任意のビューに置き換えることができます。
他のヒント
私はまた、グループ化されたセルのカスタム選択したセルのビューを作成しようとしてこの問題に出くわしました。 Iは、セル上部、中央及び中間セルが存在するであろうと仮定底のための画像の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;
は、おそらくもっと簡単な方法がありますが、私は結果に満足しています。
私はあなたがカスタムカラーを使用することができるとは思いません。しかし、あなたはのUITableViewCellの次のプロパティを使用することができます。
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
選択スタイルは、それが選択されたときにセルの色を決定backgroundView定数です。デフォルト値はUITableViewCellSelectionStyleBlueです。以来
typedef enum {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;
あなたはグレーにブルーのデフォルト、もしくはまったく色の選択から切り替えることができます。
を確認してください、あなたがヘッダに宣言した後、
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
の実装
cell.selectionStyle = UITableViewCellSelectionStyleGray
ここでUITableViewCellSelectionStyleGray
はUITableViewCellSelectionStyleNone
、UITableViewCellSelectionStyleBlue
、UITableViewCellSelectionStyleGray
することができる。
それを行うための別の方法は、あなたのセルの上に新しいビューに移動するにはどのような色であなたが50%ほど不透明度としたいだろう。あなたが-setSelectedを取得するときには、細胞への上に、このビューを移動:アニメーション:呼び出します。私は動きを言うとき、あなたは実際には常に、あなたのセルの上にビューを持つことができますが、あなたが必要としてだけでオフとオンの隠れビットをオンにします。