ios 7 personnalisation de UITableViewCell de l'affichage du contenu
À l'aide de storyboard dans ios7 l'affichage du contenu est explicitement affiché sous la la Vue de la Table de Cellules dans le story-board de l'éditeur (par opposition aux versions précédentes où il était caché à partir de l'interface).
Le problème est que je ne peux pas connecter la cellule des éléments personnalisés à ma cellule personnalisé de l'ib points de vente (sous-classe de UITableCellView
) et ne peut se connecter au tableau de l'affichage de contenu (UIView
) qui NE peuvent pas être personnalisés (c'est à dire son propre attribut de classe est grisé)
Cela me laisse avec la possibilité d'utiliser les balises que je trouve moins pratique et moins élégant.
Je pourrais aussi créer un affichage personnalisé dans un xib, faire toutes les connexions et les ajouter manuellement cette coutume vue que l'affichage du contenu de la table, mais je suis à la recherche d'un moyen de le faire via le story-board de l'éditeur.
Est-il un moyen de connecter des éléments de l'INTERFACE utilisateur personnalisée de la cellule d'affichage de contenu dans le story-board de l'éditeur dans ios7 ?
OriginalL'auteur giorashc | 2013-10-05
Vous devez vous connecter pour publier un commentaire.
J'ai été capable de le faire de la manière suivante:
J'ai une sous-classe personnalisée de UITableViewCell et a déclaré points de vente sur cet objet.
Quelle est la version de xcode utilisez-vous ?
Je suis en utilisant Xcode Version 5.0 (5A1413)
Yep moi aussi. Pouvez-vous changer la classe personnalisée de l'affichage du contenu ?
OriginalL'auteur Mike Gottlieb
Ok j'ai trouvé un Xcode bug.
Si vous procédez de la façon suivante ce sera de reproduire le problème:
- Créer de nouveaux UIViewController en storyboard
- Faites glisser un UITableView de la VC
- Mise à jour de la UITableview à 1(comme beaucoup) dynamique prototype cellules
PROBLÈME: Les cellules sont ajoutées, mais sans contentView.
RÉSOLUTION:
Plutôt que de mettre à jour la quantité de cellules dans la table de montage séquentiel.
Faites glisser une cellule personnalisé à partir des objets de la partie de Xcode, la Cellule sera ajouté avec un contentView.
Lire mon commentaire, permettez-moi de savoir si je n'ai pas compris votre réponse est correcte.
Oui, je présume que vous ne pouvez pas voir le contentView par conséquent, d'ajouter des Éléments de l'INTERFACE utilisateur de la cellule personnalisé.
J'ai couru dans la présente aujourd'hui. Merci pour le correctif StuartM. Avez-vous déposé un radar?
Oui, monsieur, (Double de 14866276 (Ouvrir)). Se sentir libre pour déposer un trop et remarque que c'est un double de ce nombre. Le plus de rapports, plus il est susceptible d'être résolu. Hésitez pas à voter la réponse trop pour la visibilité
OriginalL'auteur StuartM
Je ne sais pas vraiment la réponse, mais je peux vous proposer un travail autour de cette question:
1) Copie de la cellule existante à partir d'autres tableview à la sur lequel vous travaillez.
2) Vous aurez contentView sous votre cellule maintenant. La conception de cette cellule par l'ajout de votre point de vue.
3) Créer une classe pour votre cellule, e.g NewCell, puis créez manuellement IBOutlet dans cette classe:
@property (nonatomic, strong) IBOutlet UILabel* mainLabel;
4) Assigner la classe de cellules dans la table de montage séquentiel pour la classe que vous venez de créer. Après cette étape, vous pouvez faire glisser la sortie du storyboard à la classe.
Je ne suis pas sûr si c'est un bug de XCode 5 ou il est prévu, et je suis à la recherche de meilleures solutions.
Eh bien, si j'essaie de me connecter de l'étiquette à la cellule personnalisé de classe IB je n'ai pas toutes les options (propriétés de connecto). La cellule n'est pas encore mis en surbrillance lorsque je ctrl+faire glisser l'étiquette à la cellule personnalisé de classe IB. Je ne peux que faites-la glisser vers le contenu de la cellule de vue, qui n'aide pas car il ne peut pas être personnalisé
Voir la réponse ci-dessous, c'est la résolution. Il y a un bug avec Xcode, j'ai déposé un Radar.
Pour moi, quand j'ai un contentView dans la cellule, je viens de faire glisser mes étiquettes (assurez-vous que ces étiquettes sont à l'intérieur de contentView, pas à l'extérieur). Par la définition de la classe de cellules de
NewCell
, je peux juste glisser à partir de l'étiquette de laNewCell.h
et définir la IBOutlet. Si elle ne fonctionne pas pour vous, essayez de redémarrer Xcode?Quelle est la version de xcode utilisez-vous ?
OriginalL'auteur thomasdao
Créer de nouveaux uiviewcontroller avec xib interface et ajouter la sous-vues .Aussi,établir la iboutlet connexions.
Maintenant ,renommez le viewcontroller : UIViewcontroller à viewcontroller : UITableviewcell .h fichier que vous venez de créer-vue-contrôleur.
Votre tableviewcell a été créé et prêt à l'utilisation avec un UITableview de toute la classe.
Espère que cela aide.
OriginalL'auteur itechnician
J'ai peut-être la duplication de quelqu'un d'autre réponse, mais j'ai trouvé cette solution qui a permis de contourner cette stupide XCode bug. Court de solution: Lorsque vous générez votre cellule personnalisé dans le Storyboard, ne PAS faire glisser vos éléments d'INTERFACE utilisateur à l'intérieur de la cellule ou de l'affichage du contenu.
Au lieu de cela, faites-les glisser à l'EXTÉRIEUR de sorte qu'ils sont les éléments enfants de la table parent vue!
Il est plus facile de faire glisser et de déposer si vous utilisez le peu de hiérarchie de menu sur la gauche pour vous assurer que vos éléments de vent dans le bon endroit.
Une fois que les éléments sont glissés dans, le contrôle de la souris et faites glisser à partir de la cellule personnalisé pour les éléments d'INTERFACE utilisateur pour faire vos connexions. Woo hoo!
Une fois vos connexions sont établies, puis (enfin) de faire glisser les éléments de l'INTERFACE utilisateur de retour DANS la coutume de la cellule d'affichage de contenu et de les agencer comme vous le feriez normalement.
Mise à JOUR: Alors que ma méthode fonctionne, recherchez un commentaire par thomasdao dans une réponse ci-dessous où il a juste fait glisser les connexions directement dans la .h fichier (les petits cercles dans la marge de gauche où vous déclarez votre IBOutlets) -- c'est la solution la plus simple, mais malheureusement, il est coincé comme un commentaire.
OriginalL'auteur UXUiOS