Je tiens à déterminer comment ajouter des cellules personnalisées à une vue de table à Swift. J'ai regardé beaucoup de tutoriels et ils disent tous à un moment d'utiliser quelque chose comme Ceci est le code que j'utilise dans ma catégorie TableViewController: p> Lorsque j'essaie de construire, j'ai une erreur sur la deuxième ligne qui dit: p> Impossible d'invoquer "registernib" avec une liste d'arguments de type '(Uinib,
ForcellruseIdentifier: String) '. P>
BlockQuote> Que puis-je faire? Tous les tutoriels et autres réponses sur les cellules personnalisées utilisent ce code. P> Merci d'avance p> P> tableview.registernib code> qui ne fonctionne pas pour moi!
6 Réponses :
J'utilise le code suivant à l'intérieur TableView: Couvertfrofortordexpath CODE> Fonction:
var cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as UITableViewCell
if cell == nil {
tableView.registerNib(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "CustomCell")
cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as UITableViewCell!
}
return cell
Semble inutile d'enregistrer la pointe de la pointe et plus ici. Faites-le une fois, sur la charge.
J'ai deuxième @ auvoir. Enregistrement d'une cellule n'est qu'une exigence ponctuelle. Donc, ne nécessite pas d'être écrit dans CellfornorTindexpath: code> méthode.
OK ... Je ne sais pas quel était le problème, mais supprimez la référence de fichier de mon Merci à tous pour vos réponses rapides! P> cell.xib code> dans mon projet et l'ajoutez à nouveau simplement résolu le problème.
J'ai déjà eu des problèmes résolus comme ça dans le passé. P>
Après que certains cogneurs, j'ai réalisé mon erreur:
au lieu de "ForcellreutifIdentifier", j'étais censé utiliser ForcellWhithRutIdentifier. Avec tant de choses changeant avec Swift, si rapidement, c'est difficile à suivre tous les changements. J'espère que cela aide. P>
solution qui a fonctionné pour moi: p>
Ca c'est drôle. Lorsque j'ai essayé d'utiliser "ForcellwithReuTusIdentifier", j'ai eu une erreur et j'ai dû le repasser sur "ForcellruseIdentifier", et non que l'un ou l'autre corrige le problème.
Dans mon cas, la solution modifiait ceci: à ceci: p>
Dans votre viewDidload Ajouter Ajouter les lignes suivantes:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell_name", for: indexPath)as! cell_name
J'ai utilisé une fonction générique que j'ai appelée comme ceci. La classe générique a été utilisée à partir de Github, vous pouvez simplement utiliser la fonction suivante: P > public func register<Resource: NibResourceType & ReuseIdentifierType>(_ nibResource: Resource)
where Resource.ReusableType: UICollectionViewCell
{
register(UINib(resource: nibResource), forCellWithReuseIdentifier: nibResource.identifier)
}
Comment
tableView code> déclarée? Notez que si
tableview code> est facultatif, vous ne pouvez pas appeler une méthode directement, vous devez utiliser la notation
TABLEVIEW ?.REGISTERNIB code>.
Ma tableView est déclarée sous forme de sortie:
@iboutlet faible Var Varyview: Uitailview! Code>
Il n'y a rien de mal avec votre code. Le seul problème que je peux imaginer, c'est que vous avez une faute de frappe et vous n'avez pas copié la faute de frappe ici correctement.
Comment tu as créé la cellule? Utiliser le code ou la nib?
Y a-t-il un moyen de reproduire votre problème?