J'ai déjà lu et vu quelques vidéos sur ce sujet mais je n'arrive pas à le faire fonctionner. Im essayant une cellule d'un xib au lieu du storyboard.
Ceci est mon ViewController (où j'ai la vue Table).
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CellTableView
cell.test.text = "A";
return cell;
}
}
Voici mon CellTableView (la classe où j'ai mon Cell):
import UIKit
class CellTableView: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
@IBOutlet var teste: UILabel!
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
J'ai toujours utilisé la cellule Table View dans la vue Table sur le StoryBoard, mais je veux essayer une approche XIB maintenant.
J'ai ajouté l'identifiant cell sur la cellule XIB pour l'appeler avec la méthode dequeueReusableCell.
Qu'est-ce que je pourrais faire de mal? J'ai essayé de sortir le dataSource et le délégué de la vue de la table mais j'ai eu une erreur (et je pense que ce ne sont pas les bonnes étapes).
Vous devez enregistrer votre objet nib.
Dans viewDidLoad()
:
let nib = UINib(nibName: "nameOfYourNibFile", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "yourIdentifier")
Vous devez également renvoyer le nombre de sections:
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
Tout d'abord, vous devez enregistrer votre objet nib.
yourTable?.register(UINib(nibName: "yourCustomCell", bundle: nil), forCellReuseIdentifier: "cellIdentifier")