Swift UITableView
Delegate
We should implement UITableViewDelegate, UITableViewDataSource to manage UITableView
Methods
We need to implement UITableViewDelegate, UITableViewDataSource methods
Method | Delegate | Description |
---|---|---|
tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int | Number of table row | |
tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) | Handle cell select event | |
tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? | Return header title | |
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell | Create table view cell of each row and section |
Sample
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { private let kCELLIDENTIFIER = "Cell" private var tableView : UITableView? override func viewDidLoad() { super.viewDidLoad() self.tableView = UITableView() self.tableView?.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height); self.tableView?.delegate = self self.tableView?.dataSource = self self.view .addSubview(self.tableView!) self.tableView?.registerClass(UITableViewCell.self, forCellReuseIdentifier: kCELLIDENTIFIER) self.tableView?.reloadData() } // MARK: UITableView func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier(kCELLIDENTIFIER, forIndexPath: indexPath) as UITableViewCell cell.textLabel.text = "Table Title" return cell } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) // Select Event } func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return "Header title" } }