我正在測試如何在UITableView的不同部分使用不同的單元格類型。我爲此創建了一個項目。故事板看起來是這樣的: 在iOS表格視圖的不同部分使用不同的單元格類型
正如你所看到的,我插入了兩個原型單元格,其外觀略有不同。這裏是我的視圖控制器:
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
var firstSection = "first title"
var secondSection = ["second title", "third title"]
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.dataSource = self
self.tableView.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return 1
}
return secondSection.count
}
func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section == 0 {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "first_cell", for: indexPath) as! FirstCell
cell.title.text = self.firstSection
return cell
}
else {
let cell = self.tableView.dequeueReusableCell(withIdentifier: "second_cell", for: indexPath) as! OtherCell
cell.title.text = self.secondSection[indexPath.row]
return cell
}
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
if section == 0 {
return "Section 1"
}
else {
return "Section 2"
}
}
}
和我的兩個類型的表視圖細胞的定義:
class FirstCell: UITableViewCell {
@IBOutlet var title: UILabel!
}
class OtherCell: UITableViewCell {
@IBOutlet var title: UILabel!
}
我已經確定在故事板指定原型細胞的類名和設置其重用標識符。但是,已編譯的應用程序顯示此意外行爲:
首先,沒有顯示單元格。其次,在第二節標題下面,有這個灰色區域,其中有一些x插圖,其起源我不知道。我可以如何解決這個問題?提前致謝。
您可能要實現'FUNC的tableView(_的tableView:UITableView的,heightForRowAt indexPath:IndexPath) - > CGFloat' – Larme
@Larme它的工作!非常感謝你。 – antande