Ячейка из Xib с Swift 3
Я уже читал и видел некоторые видео по этому вопросу, но я не могу заставить это работать. Im пытается ячейку из xib вместо раскадровки.
Это мой ViewController (где у меня есть представление таблицы).
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;
}
}
Это мой CellTableView (класс, где у меня есть моя ячейка):
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
}
}
Я всегда использовал ячейку представления таблицы внутри представления таблицы на раскадровке, но теперь я хочу попробовать подход XIB.
я добавил ячейка идентификатор ячейки XIB назвать его методом dequeueReusableCell.
что я могу делать неправильно? Я попытался выпустить источник и делегат представления таблицы, но я получил ошибку (и я думаю, что это не правильные шаги).
2 ответов
вам нужно зарегистрировать объект nib.
на viewDidLoad()
:
let nib = UINib(nibName: "nameOfYourNibFile", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "yourIdentifier")
вам также необходимо вернуть количество разделов:
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
прежде всего, вы должны зарегистрировать свой объект ниб.
yourTable?.register(UINib(nibName: "yourCustomCell", bundle: nil), forCellReuseIdentifier: "cellIdentifier")