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

Était-ce utile?

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

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top