personnalisé tableviewCells pour UITableView créé par programmation dans le storyboard
Dans mon application que je suis en utilisant la table de montage séquentiel. Mais j'ai créé un UITableView
par programme au lieu de les glisser à partir de la Bibliothèque d'Objets. Et maintenant, je veux personnaliser les cellules de la créé par programmation UITableView
. Quelqu'un peut-il m'aider en fournissant un exemple de création d'un UITableViewCell
par programmation dans le storyboard?
OriginalL'auteur haritha | 2013-03-20
Vous devez vous connecter pour publier un commentaire.
J'aimerais éviter de mettre de la mise en page et la construction de votre cellule en
cellForRowAtIndexPath
.De créer une cellule personnalisé par programmation, vous devez d'abord créer un
UITableViewCell
sous-classe.Ajoutez à cela le
labels
,imageViews
, etc... Ajouter le sous-vues de lacell.contentView
.Par programmation
c'est à dire
Si vous voulez faire la mise en page des trucs de la cellule, puis dans le
MyCell
de classe que vous pouvez faire...Puis dans le
tableViewController
vous devez vous inscrire à la cellule de la classe...Dans
viewDidLoad
...AVEC INTERFACE BUILDER
Encore créer la sous-classe personnalisée, mais aussi de créer un fichier xib du même nom. Ensuite dans votre fichier xib vous pouvez raccorder les sorties au lieu d'avoir à les créer dans l'init de la cellule. (Si vous le faites de cette façon que l'initialisation ne sera pas appelé de toute façon).
Le seul autre changement que vous avez besoin est que dans
viewDidLoad
vous devez vous inscrire à la pointe de la cellule et non pas la classe.Comme ça...
Puis tout le reste fonctionne de la même.
À L'AIDE DE LA CELLULE
L'utilisation de la cellule que vous avez créé la sous-classe pour...
RÉSUMÉ
Le faisant de cette manière signifie que votre tableviewcontroller ne s'intéresse qu'à mettre des trucs dans les cellules. Si vous mettez toute votre logique pour la construction de vos cellules ainsi tout simplement fait vraiment désordre.
Cela signifie également que vous n'avez pas à traiter avec des charges de différentes balises pour enregistrer et récupérer les différents éléments de l'INTERFACE utilisateur.
OriginalL'auteur Fogmeister
Je vais décrire deux options: Ajout de la cellule à l'aide de l'Interface Builder (plus simple), et l'ajout de la cellule de base du programme:
En utilisant l'Interface Builder
Une fois que vous avez créé la cellule dans Interface Builder et ajouté des sous-vues avec votre contenu personnalisé, ouvrez les Attributs de l'inspecteur, sélectionnez le Personnalisé style et entrez un identifiant unique dans le la Réutilisation de l'identificateur de champ de texte (par exemple, "anIdentifier"). Ensuite, sélectionnez les champs de cellule que vous souhaitez accéder par programme et définir un unique tag nombre pour chacun d'eux (c'est en vertu de la Vue section).
Puis, dans votre source de données de code, de mettre en œuvre cette méthode:
Par programme
Si vous voulez créer la cellule de la programmation, le code doit être quelque chose de similaire à ceci:
Il n'y a plus d'informations sur le site web d'Apple: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/tableview_iphone/TableViewCells/TableViewCells.html
À partir de l'iOS 6
dequeueReusableCellWithIdentifier:
ne sera pas de retournil
plus. Vous obtenez un nouveau ou réutilisé de cellules automatiquement. Si c'est votre minimum cible de déploiement, vous pouvez laisser leif
/else
construire.Daniel, c'est seulement le cas si vous avez une classe (ou plume) inscrits pour la réutilisation identificateur par ma réponse. Si vous n'avez pas de classe enregistré puis un nul cellule sera retourné.
Je voudrais mettre les cellules dans sepearate XIB fichiers et de les charger sur demande. De cette façon, vous n'avez pas de disposition dans le code et ne pouvez toujours les réutiliser facilement dans des endroits différents.
En effet. Bon point.
OriginalL'auteur Daniel Martín