Sous-classe UITableViewCell correctement?
Quelle est la différence entre l'ajout de la sous-vue pour soi et /ou à l'affichage du contenu?
Sous-vue ajoutés à l'auto
- (id)initWithFrame:(CGRect)frame { if ((self = [super initWithFrame:frame])) {
UIImage *img = [UIImage imageNamed:@”lol.jpg”];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
[self addSubview:imgView];
[imgView release];
return self;
}
Sous-vue ajoutés à contentView
- (id)initWithFrame:(CGRect)frame { if ((self = [super initWithFrame:frame])) {
UIImage *img = [UIImage imageNamed:@”lol.jpg”];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
[self.contentView addSubview:imgView];
[imgView release];
return self;
}
source d'informationauteur Sheehan Alam
Vous devez vous connecter pour publier un commentaire.
Selon la Apple docs:
Généralement que vous ajoutez à un contentView lorsque vous êtes à l'aise avec votre redimensionnement et positionnement de votre contenu à être manipulé par le autoresize paramètres, et la sous-classe UITableViewCell lorsque vous avez besoin d'un comportement personnalisé. La Pomme de Table Afficher le Guide de Programmation a une grande section sur les personnalisation de UITableViewCells.
Sa parce que quand un tableviewcell va dans édition mode, il va ajouter de la autres contrôles comme le bouton supprimer de la cellule. de sorte que votre contenu doivent être redimensionnées pour faire de la place pour les nouveaux contrôles. Si vous ajoutez votre sous-vues directement à la tableviewcell ces contrôles d'édition, on risque de masquer les sous-vues que vous avez ajouté. La cellule ne peut pas ajuster sa taille au moment d'entrer en mode d'édition(il doit rester de la largeur de l'affichage de la table). mais le contentView objet peut et il le fait. c'est pourquoi vous devriez ajouter des sous-vues à la contentView objet.
Vous devez toujours insérer votre affichage personnalisé dans la cellule
contentView
. Assurez-vous de ne pas utiliser