apprendre à créer des tableViewCell de xib
Je veux créer un personnalisé TableViewCell sur lequel je veux avoir UITextField avec la modification de la possibilité.
J'ai donc créé une nouvelle classe avec xib. Ajouter TableViewCell élément. Faites glisser sur elle UITextField. Ajout de points de vente dans ma classe et les relier tous ensemble. Dans ma méthode TableView cellForRowAtIndexPath j'ai créer mon personnalisée des cellules, MAIS ils ne sont pas à mon habitude de cellules, ils sont juste normal des cellules. Comment puis-je résoudre ce problème et pourquoi il en est? merci!
//EditCell. h
#import <UIKit/UIKit.h>
@interface EditCell : UITableViewCell
{
IBOutlet UITextField *editRow;
}
@property (nonatomic, retain) IBOutlet UITextField *editRow;
@end
//EditCell.m
#import "EditCell.h"
@implementation EditCell
@synthesize editRow;
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidUnload
{
//Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
//For example: self.myOutlet = nil;
self.editRow = nil;
}
@end
//dans mon code
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"EditCell";
EditCell *cell = (EditCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[EditCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier] autorelease];
}
cell.editRow.text = @"some text to test";
return cell;
}
OriginalL'auteur yozhik | 2010-11-16
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser de UITableViewCell de l'initialiseur, mais la cellule de charge à partir de votre plume:
Bien sûr, vous avez besoin de choisir le bon nom de plume.
La plume nom doit être fourni sans l'extension (.xib):
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EditCell" owner:self options:nil];
encore des plantages(((
Confirmer:même code, les accidents de
même avec moi se bloque 🙁
OriginalL'auteur Björn Marschollek
Vous pouvez charger des UITableViewCells de PLUME fichiers sans créer une sous-classe de UITableViewCell premier, mais avec une sous-classe, vous pouvez configurer plus sur la cellule.
Première solution, sans sous-classe:
Dans ViewController:
• * * Définir la cellule ivar comme IBOutlet
De l'IB:
• Créer un nouveau vide PLUME fichier et l'ouvrir dans Interface Builder
• Faites glisser la vue de la table de la cellule à partir de la bibliothèque de la fenêtre de document et l'ouvrir avec un double-clic
• Personnalisez la cellule, n'oubliez pas de balise ajoutée vues
• Sélectionnez la cellule et ajouter un identifiant (pour l'utiliser plus tard dans tableView:cellForRowAtIndexPath:)
• Définir le Propriétaire du Fichier de la classe de contrôleur qui sera le chargement de cette cellule
• * * * Connect propriétaire du fichier de la cellule prise avec la cellule de PLUME
Dans ViewController:
• Dans tableView:cellForRowAtIndexPath:
tous ensemble
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
Deuxième solution, avec sous-classe:
Dans l'éditeur de Code:
1.
Créer de nouveaux sous-classe de UITableViewCell2.
Ajouter initWithCoder méthode, ajouter la personnalisation3.
Ajouter une méthode pour l'établissement de valeurs (comme "setupCellWith:")--> points de vente seront ajoutés plus tard à partir de l'IB
De l'IB:
4.
Créer un nouveau vide XIB fichier5.
Changement de propriétaire du fichier = UIViewController6.
Glisser TableView de la cellule à partir de la Bibliothèque7.
Changer sa classe à la sous-classe personnalisée (voir 1.)8.
Ensemble de la cellule de propriété d'identifiant //attention, ici, comme dans le cellForRowAtIndexPath:9.
Connecter vue prise du propriétaire du fichier à TableView cellule10.
Ajouter des éléments d'interface les mettre en place correctement (ensemble de la classe, ...)11.
Créer les débouchés nécessaires via Ctrl tout en faisant Glisser pour CustomSubclass.h--> faible ou fort? --> faible, fort seulement de haut niveau des objets sans prédéfini de points de vente (c'est à dire comme "vue")
Dans l'éditeur de Code:
12.
Personnaliser "tableView:cellForRowAtIndexPath:"OriginalL'auteur drct
Vous avez besoin pour charger votre xib et récupérer votre cellule personnalisé:
Assurez-vous aussi que vous avez réellement changé la tableViewCell classe dans votre xib à EditCell.
Vous devez également modifier le tableView ligne de hauteur à la bonne taille.
Une autre façon de faire est de construire votre cellule par programme dans votre EditCell classe, qui, je crois, vous permettra d'être beaucoup plus libre et plus précises que dans InterfaceBuilder:
Dans EditCell.m:
Puis dans votre tableViewController vous créer une cellule de la manière que vous avez fait et de récupérer votre champ de texte avec la balise.
OriginalL'auteur ebany