Personnalisé UITableViewCell init
J'ai créé une coutume UITableViewCell
à l'aide de story-boards.
Je suis de chargement comme ceci:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
HJAddCell *cell = [tableView dequeueReusableCellWithIdentifier:@"addCell"];
//setting properties of cell
return cell;
}
Maintenant, j'ai besoin d'ajouter un peu plus de personnalisation par programme au cours de l'initialisation. Mais le problème est que dans mon HJAddCell
, le init
méthodes ne sont pas appelés. Que dois-je faire pour que le init
méthode est appelée ou est-il une autre façon d'ajouter plus d'options de personnalisation du code à la cellule personnalisé en classe au moment de l'initialisation avec un minimum d'effort.
Mise à jour: j'ai besoin d'ajouter des bordures de UILabels. Je n'ai pas trouver quelque chose à faire dans le storyboard.
OriginalL'auteur Abdullah Umer | 2012-10-03
Vous devez vous connecter pour publier un commentaire.
Bien sûr l'init méthodes ne sont pas appelés. Vous n'êtes pas d'appeler n'importe init méthodes vous-même. Si vous vous inscrivez HJAddCell de bec avec la vue du tableau, l'initialisation de la méthode appelée est initWithCoder. Si vous utilisez une plume, vous devez également vous poser au sujet de pourquoi vous avez besoin pour personnaliser personnalisé UITableViewCell sur le moment de l'exécution. Je veux dire, c'est déjà une cellule personnalisé. Vous devez créer la cellule avec les propriétés que vous devez avoir.
Vous pouvez personnaliser votre vue de la table de la cellule en vertu d'un scénario. Vous pouvez ajouter autant de voir les éléments que vous le souhaitez. Vous ne devez pas faire de personnalisation sur le moment de l'exécution.
Pour être plus précis j'ai besoin d'ajouter à la frontière à un UILabel. Je n'ai pas trouver quelque chose à faire dans le storyboard. :/
la sous - classe - (void)awakeFromNib sur votre tableviewcell sous-classe et de le faire là.
- (void)awakeFromNib travaillé. J'ai aussi essayé en initWithCoder mais le code n'est pas faire de l'effet. Je suppose que c'est parce que les propriétés n'ont pas été initialisée à l'époque. Merci! 🙂
OriginalL'auteur J2theC
UIViews ont deux désigné initialiseurs:
initWithFrame:
etinitWithCoder:
.initWithCoder:
est utilisé si la vue est chargé de plume/storyboard,initWithFrame
- si la vue est créé par programmation.OriginalL'auteur Kreiri
Comment sur l'ajout d'une nouvelle méthode de HJAddCell appelé le reset? Déplacer le code d'initialisation qui doit se produire avant chaque utilisation dans la méthode de réinitialisation et d'appel de réinitialisation de votre initialiseur.
Ensuite, vous appelez la méthode reset après résorption de l'-ing de votre cellule.
OriginalL'auteur talanb