According to your data, it looks like you need a grouped tableView where your other section will have different types of cells. This is pretty easy.
, . , . , .
( , , )
-, View .

2 UITableViewCell -

2 TableView TableView .

, TableView TableView, .
, , . , -

-

. , -

-

. - UITableView, .
TableView "", -

.
IBOutlets TableViewCells, .
TypeOneTableViewCell.swift class-
import UIKit
class TypeOneTableViewCell: UITableViewCell {
@IBOutlet weak var cellImageView: UIImageView!
@IBOutlet weak var cellTitleLabel: UILabel!
@IBOutlet weak var cellSubtitleLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
}
TypeTwoTableViewCell.swift -
import UIKit
class TypeTwoTableViewCell: UITableViewCell {
@IBOutlet weak var cellTitleLabel: UILabel!
@IBOutlet weak var cellSubtitleLabel: UILabel!
@IBOutlet weak var cellButton: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
}
}
.

, -
. . IBOutlet TableView, -
@IBOutlet weak var groupedTableView :UITableView!
TableView .

TableView Datasource. , , -
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
, , UITableViewDatasource, , .
. , . viewDidLoad -
override func viewDidLoad() {
super.viewDidLoad()
self.groupedTableView.dataSource! = self
self.groupedTableView.delegate! = self
}
tableView, 2 numberOfSectionsInTableView, -
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
, . 4 , - 3 . numberOfRowsInSection.
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
if section == 0{
return 4
}
else{
return 3
}
}
, -
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
if indexPath.section == 0{
let cell : TypeOneTableViewCell = tableView.dequeueReusableCellWithIdentifier("typeOneCell", forIndexPath: indexPath) as! TypeOneTableViewCell
cell.imageView!.image = UIImage(named: "noImage.png")
cell.cellTitleLabel.text = "Header " + "\(indexPath.section)" + "-" + "\(indexPath.row)"
cell.cellSubtitleLabel.text = "Details " + "\(indexPath.section)" + "-" + "\(indexPath.row)"
return cell
}
else{
let cell : TypeTwoTableViewCell = tableView.dequeueReusableCellWithIdentifier("TypeTwoCell", forIndexPath: indexPath) as! TypeTwoTableViewCell
cell.cellTitleLabel.text = "Header " + "\(indexPath.section)" + "-" + "\(indexPath.row)"
cell.cellSubtitleLabel.text = "Details " + "\(indexPath.section)" + "-" + "\(indexPath.row)"
return cell
}
}
! TableView , heightForRowAtIndexPath, . 80.0, -
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 80.0
}
. apple UITableView.
P.S.: . , , , -

, .