J'essaie d'utiliser un pod appelé SwipeCellKit
dans mon projet, où ce pod ajoute une classe appelée SwipeTableViewCell. Ce que j'ai fait jusqu'à présent, c'est:
UIViewController
. SwipeCellKit
dans le fichier Swift. numberOfRows
et cellForRow
à ma classe UIViewController. Ceci est l'implémentation de cellForRow
:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell; return cell; }
Mais j'ai eu une erreur sur le let cell =. ..
, en disant:
Impossible de convertir la valeur de type "UITableViewCell" en "SwipeCellKit.SwipeTableViewCell"
Pourquoi? Et comment y remédier? Je pense avoir tout arrangé comme il se doit. Ai-je manqué quelque chose?
5 Réponses :
Vous devez créer votre propre classe Cell en tant que sous-classe de SwipeTableViewCell
puis vous devez implémenter le protocole SwipeTableViewCellDelegate
dans votre ViewController
et pour cette ligne
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! MySwipeableCell cell.delegate = self
vous devez utiliser le nom de votre classe qui est une SwipeTableViewCell
sous-classe
exemple strong >
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell
Ça marche!!!!!!!!! C'est une solution très étrange, mais ça marche !!!!!! Merci!
J'ai créé l'exemple suivant
import UIKit import SwipeCellKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 4 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! SwipeTableViewCell return cell } } class SwipeTableViewCellSubClass: SwipeTableViewCell { override func awakeFromNib() { super.awakeFromNib() // Initialization code } }
a défini la classe de votre vue sur SwipeTableViewCellSubClass.
cela devrait parfaitement fonctionner pour vous. bonne chance
Qu'est-ce qui a résolu le problème pour moi:
Dans Main.Storyboard (ou là où vous avez vos vues), assurez-vous que partout où vous souhaitez utiliser la "cellule" réutilisable, dans l'inspecteur d'identité sur le volet de droite, vous avez les éléments suivants :
cette erreur est due au fait que vous définissez la valeur de la cellule dans viewDidLoad () ftn ().
Lors de l'importation de SwipeCellKit, avez-vous vérifié l'appartenance cible?
Sans rapport mais c'est Swift: pas de point-virgule à la fin!
pouvez-vous joindre une démo
essayez de nettoyer et de redémarrer le Xcode
J'ai choisi la réponse de travail pour moi. C'est bizarre que je doive sous-classer davantage la cellule pour pouvoir l'utiliser.