Vous avez besoin de changer la couleur de vue Tableau de sélection
Question
Je dois changer la sélection de couleur bleue par défaut de vue de la table pour une couleur personnalisée. Y'a-t'il un quelconque moyen d'y arriver. Aide-moi
La solution
La meilleure façon de le faire est comme ceci:
// 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;
}
La partie pertinente pour vous est le cell.selectedBackgroundView = v;
instruction.
Vous pouvez remplacer la vision très basique « v » ici avec une vue que vous aimez.
Autres conseils
Je suis aussi sur ce problème en essayant de créer des vues de cellules sélectionnées sur mesure pour la cellule groupée. J'ai résolu ce problème en créant 3 types d'images pour le haut de la cellule, au milieu et en bas en supposant qu'il y aura une cellule du milieu.
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;
Il est peut-être un moyen plus facile, mais je suis content du résultat.
Je ne pense pas que vous pouvez utiliser une couleur personnalisée. Cependant, vous pouvez utiliser la propriété suivante UITableViewCell
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
Le mode de sélection est une constante backgroundView qui détermine la couleur d'une cellule lorsqu'elle est sélectionnée. La valeur par défaut est UITableViewCellSelectionStyleBlue. Depuis
typedef enum {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;
vous pouvez passer du bleu au gris par défaut, ou aucune sélection de couleur du tout.
Assurez-vous que lorsque vous déclarez dans l'en-tête
@property(nonatomic) UITableViewCellSelectionStyle selectionStyle
Mettre en œuvre
cell.selectionStyle = UITableViewCellSelectionStyleGray
où UITableViewCellSelectionStyleGray
peut être UITableViewCellSelectionStyleNone
, UITableViewCellSelectionStyleBlue
, UITableViewCellSelectionStyleGray
.
Une autre façon de le faire serait de passer dans une nouvelle vue sur votre cellule, avec quelque couleur que vous souhaitez et 50%, ou l'opacité. Vous vous déplacez ce point de vue sur la cellule lorsque vous obtenez un -setSelected: animé: appel. Quand je dis déménagement, vous pourriez en fait toujours une vue sur le dessus de votre cellule, mais il suffit de tourner le bit caché sous et hors tension que vous avez besoin.