Create UITableView Programmatically in Swift

This Swift code example will demonstrate how to create UITableView programmatically in Swift.

The code example below will cover:

  • Make ViewController conform to UITableViewDataSource, so that we can load table items into the table view
  • Make ViewController conform to UITableViewDelegate, so that we can handle events like for example when user taps on a table cell
  • Load three items from an array into the table view
  • Determine device screen size and make table view stretch full width and height
  • Set textLabel of UITableViewCell
  • Implement didSelectRowAtIndexPath function, to handle events when user taps on a table view cell

UITableView programmatically. Complete Code Example in Swift.

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    var myTableView: UITableView  =   UITableView()
    var itemsToLoad: [String] = ["One", "Two", "Three"]
    override func viewDidLoad() {
        // Do any additional setup after loading the view, typically from a nib.
    override func didReceiveMemoryWarning() {
        // Dispose of any resources that can be recreated.
    override func viewWillAppear(animated: Bool) {
        // Get main screen bounds
        let screenSize: CGRect = UIScreen.mainScreen().bounds
        let screenWidth = screenSize.width
        let screenHeight = screenSize.height
        myTableView.frame = CGRectMake(0, 0, screenWidth, screenHeight);
        myTableView.dataSource = self
        myTableView.delegate = self
        myTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myCell")
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
        return itemsToLoad.count
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
        let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath)
        cell.textLabel?.text = self.itemsToLoad[indexPath.row]
        return cell
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
        print("User selected table row \(indexPath.row) and item \(itemsToLoad[indexPath.row])")


Check out these short video tutorials on how to use UITableView in Swift:

UITableView in Swift. Video Tutorials.

[raw_html_snippet id=”cookbookpagecoursesheader”]

Unit Testing Swift Mobile App

Apply Test-Driven Development(TDD) process to iOS mobile app development in Swift Preview this video course.