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() { 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. } override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) // 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") self.view.addSubview(myTableView) } 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.
- Display Large Collection of Images in UITableView with SDWebImage
- UITableViewCell Separator. Hide Separator or Change Left Side Spacing
- UISegmentedControl with UITableView example in Swift. Part 1.
- UISegmentedControl with UITableView example in Swift. Part 2.
[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.