このテーマに関するビデオをすでに読んで見ましたが、うまくいきません。ストーリーボードの代わりに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(私が自分の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
}
}
StoryBoardのテーブルビュー内で常にテーブルビューセルを使用しましたが、XIBアプローチを今すぐ試したいと思います。
DequeueReusableCellメソッドで呼び出すために、セルXIBにcell識別子を追加しました。
何が間違っているのでしょうか? Table ViewのdataSourceとdelegateをアウトレットにしようとしましたが、エラーが発生しました(正しい手順ではないと思います)。
ペン先オブジェクトを登録する必要があります。
viewDidLoad()
::
let nib = UINib(nibName: "nameOfYourNibFile", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "yourIdentifier")
セクションの数も返す必要があります。
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
まず、nibオブジェクトを登録する必要があります。
yourTable?.register(UINib(nibName: "yourCustomCell", bundle: nil), forCellReuseIdentifier: "cellIdentifier")