利用UITableView來建立
選擇UITableView並將其拉進StoryBoard並與程式碼進行連結,再將右邊的Prototype cells設為1(不設也沒關係,為了方便我們看到Cell的變化)。
接著選到畫面左邊的cell,並將其右邊的identifier改成cell,此部驟相當於TableView中的register方法。
在連結TableView的ViewController打上程式碼來遵守UITableViewDelegate與UITableViewDataSource協定,因此要實現此兩協定的方法。
//每個Section裡面會有幾列
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
程式碼區
}
//設定cell要顯示的內容
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
一般來說會實現tableView中的dequeueReusableCell方法藉以重複使用cell
}
tableview名稱.delegate = self
及tableview名稱.dataSource = self
上述我們選擇Prototype cell為1是為了方便我們進行客製化cell的視覺化呈現,如果選擇2以上,這樣我們就需要設定給每個的cell ID。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? MycustomTableViewCell{
cell.myCellLabel.text = sceneFigureArray[indexPath.row]
cell.myCellLabel.backgroundColor = UIColor(red: 0.66, green: 1.79, blue: 2.44, alpha: 0.7)
cell.myCellImageView.image = UIImage(named: sceneFigureArray[indexPath.row])
return cell
}else {
let cell = UITableViewCell()
cell.textLabel?.text = sceneFigureArray[indexPath.row]
cell.imageView?.image = UIImage(named: sceneFigureArray[indexPath.row])
return cell
}
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
<#code#>
}
func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
<#code#>
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
<#code#>
}