[:en]
It’s useful to have two tableviews to compare data on the same screen. If you like this video, please subscribe and click like button on youtube.

import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView1: UITableView!
@IBOutlet weak var tableView2: UITableView!
var element1: [String] = ["a","b","c","d"]
var element2: [String] = ["x","y","z"]
var picture1 = ["p1","p2","p3","p4"]
var picture2 = ["p5", "p6", "p7"]
@IBOutlet weak var Image: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView1.rowHeight = 44.0 // set tableView1 height
self.tableView1.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell1")
self.tableView2.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell2")
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == tableView1 {
return self.element1.count
}
else {
return self.element2.count
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if tableView == tableView1 {
let cell1:UITableViewCell = self.tableView1.dequeueReusableCellWithIdentifier("cell1")! as UITableViewCell
cell1.textLabel?.text = self.element1[indexPath.row]
cell1.imageView?.image = UIImage(named: picture1[indexPath.row] )
// Change font size
cell.textLabel!.font = UIFont(name:"Avenir", size:15)
// Wrap the words
cell.textLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping
cell.textLabel!.numberOfLines = 0
return cell1
} else {
let cell2:UITableViewCell = self.tableView2.dequeueReusableCellWithIdentifier("cell2")! as UITableViewCell
cell2.textLabel?.text = self.element2[indexPath.row]
cell2.imageView?.image = UIImage(named: picture2[indexPath.row] )
return cell2
}
}
// Schroll to the First row
func scrollToFirstRow() {
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView1.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true)
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if tableView == tableView1 {
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell
if let cellselected : String = currentCell.textLabel!.text{
print("cell selected:\(cellselected)")
print("Index:\(indexPath.row)")
}
}
else {
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRowAtIndexPath(indexPath)! as UITableViewCell
if let cellselected : String = currentCell.textLabel!.text{
print("cell selected:\(cellselected)")
print("Index:\(indexPath.row)")
}
}
}
}
[:]
