J'ai une cellule personnalisée et lorsque l'utilisateur sélectionne cette cellule, j'aimerais que le texte des deux UILabels devienne gris clair.Changer la couleur du texte dans la personnalisation UITableViewCell iphone
ChecklistCell.h:
#import <UIKit/UIKit.h>
@interface ChecklistCell : UITableViewCell {
UILabel *nameLabel;
UILabel *colorLabel;
BOOL selected;
}
@property (nonatomic, retain) IBOutlet UILabel *nameLabel;
@property (nonatomic, retain) IBOutlet UILabel *colorLabel;
@end
ChecklistCell.m:
#import "ChecklistCell.h"
@implementation ChecklistCell
@synthesize colorLabel,nameLabel;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)dealloc {
[nameLabel release];
[colorLabel release];
[super dealloc];
}
@end
Cela fonctionne parfaitement, sauf lorsque je fais défiler les cellules modifiées, puis que je reviens en arrière, la cellule est de retour à son état d'origine. Donc, je suppose que je dois garder une trace des cellules qui sont modifiées ailleurs? Im devinant de conserver un tableau de indexPaths qui ont été modifiés, puis dans la méthode cellForRowAtIndexPath l'a vérifié le tableau pour ce chemin d'index? Ou y a-t-il un autre moyen? – Brodie
et bien sûr, maintenant que j'essaie de le faire, je ne peux pas comparer facilement deux indexPaths ... – Brodie
Oui, vous devriez vraiment mettre à jour votre source de données en même temps. Ce que j'ai décrit est vraiment seulement pour obtenir la mise à jour visuelle instantanée. Je suppose que vous avez un tableau d'objets que vous utilisez comme source de données pour la table?Vous pouvez ajouter une propriété à l'objet pour définir s'il est sélectionné ou non, la mettre à jour dans la méthode didSelectRowAtIndexPath (ainsi que le code ci-dessus) et l'utiliser pour déterminer textColor dans la méthode cellForRowAtIndexPath. J'espère que c'est clair! –