此份筆記是根據ISBN:978-986-201-900-9這本書的第3章節所紀錄的。
此份筆記為UITableView的最基本建立,其Table的資料是用固定的Array去存取。
首先要使用TableView可將TableView的物件拖曳到Storyboard內,並將TableView的dataSouce與delegate與ViewController做連結,如下圖所示。
將TableView拖曳進Storyboard內 |
將TableView的dataSource與ViewController做連接 |
將TableView的delegate與ViewController做連接 |
TableView必須繼承UITableViewDelegate、UITableViewDataSource才可使用。
2014/07/01更新:將每個cell都加入相同的圖片。
【片段程式碼】
var recipes: String[] = ["Egg Benedict", "Mushroom Risotto", "Full Breakfast", "Hamburger", "Ham and Egg Sandwich", "Creme Brelee", "White Chocolate Donut", "Starbucks Coffee", "Vegetable Curry", "Instant Noodle with Egg", "Noodle with BBQ Pork", "Japanese Noodle with Pork", "Green Tea", "Thai Shrimp Cake", "Angry Birds Cake", "Ham and Cheese Panini"]
建立一個名為recipes的Array並將內容輸入好。
func tableView(_tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return recipes.count
}
這個func為TableView必須實作的func之一,主要是告訴ViewController表格中有幾列,上面的程式將會回傳recipes這個陣列的個數。
func tableView(_tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var simpleTableIdentifier: String = "SimpleTableCell"
var cell = _tableView.dequeueReusableCellWithIdentifier(simpleTableIdentifier) as? UITableViewCell
if cell == nil {
cell = UITableViewCell(style: .Default, reuseIdentifier: simpleTableIdentifier)
}
cell!.imageView.image = UIImage(named: "creme_brelee.jpg")
cell!.textLabel.text = recipes[indexPath.row]
cell!.textLabel.text = recipes[indexPath.row]
return cell
}
這個func也是必須實作的,這樣ViewController才知道要如何顯示資料。這個func主要是告訴ViewController每一列要顯示的資料是什麼。【完整程式碼】
//
// ViewController.swift
// SimpleTable
//
// Created by Hsu,Yi-Sheng on 2014/6/30.
// Copyright (c) 2014年 yisheng. All rights reserved.
//
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var recipes: String[] = ["Egg Benedict", "Mushroom Risotto", "Full Breakfast", "Hamburger", "Ham and Egg Sandwich", "Creme Brelee", "White Chocolate Donut", "Starbucks Coffee", "Vegetable Curry", "Instant Noodle with Egg", "Noodle with BBQ Pork", "Japanese Noodle with Pork", "Green Tea", "Thai Shrimp Cake", "Angry Birds Cake", "Ham and Cheese Panini"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func tableView(_tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return recipes.count
}
func tableView(_tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var simpleTableIdentifier: String = "SimpleTableCell"
var cell = _tableView.dequeueReusableCellWithIdentifier(simpleTableIdentifier) as? UITableViewCell
if cell == nil {
cell = UITableViewCell(style: .Default, reuseIdentifier: simpleTableIdentifier)
}
cell!.imageView.image = UIImage(named: "creme_brelee.jpg")
cell!.textLabel.text = recipes[indexPath.row]
cell!.textLabel.text = recipes[indexPath.row]
return cell
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
2014/07/01更新: