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.