[APP開發-使用Swift] 6. UITableView Basic Cell

在系列文章5. UITableView中,我們已經將表格準備好,接下來就要開始處理表格內的資料,以便能讓我們喜愛的餐廳顯示出來。

  1. 新增一個Swift File:Restaurant.swift

2. Restaurant.swift內容如下:宣告class Restaurant,一間餐廳包含名稱、類型、地點、電話、圖片、是否曾經到訪。

3. 接著,我們在RestaurantTableViewController加上我們喜愛餐廳的資料:

var restaurants:[Restaurant] = [
Restaurant(name: "義大皇家酒店星亞自助餐", type: "餐廳", location: "840高雄市大樹區學城路1段153號義大皇家酒店LB大廳樓層", phone: "07-6568166#21205", image: "edaroyal.jpg", isVisited: false),
Restaurant(name: "義大皇家酒店皇樓", type: "港式飲茶餐廳", location: "840高雄市大樹區學城路1段153號義大皇家酒店LB大廳樓層", phone: "07-6568166#21402", image: "royal.jpg", isVisited: false),
Restaurant(name: "皇港茶餐廳", type: "餐廳", location: "827高雄市燕巢區義大路1號", phone: "07-6150011", image: "restaurant.jpg", isVisited: false),
Restaurant(name: "叁合院", type: "臺菜餐廳", location: "840高雄市大樹區學城路1段12號A區5樓", phone: "07-6568222", image: "sanhoyan.jpg", isVisited: false),
Restaurant(name: "1010湘料理", type: "湘菜餐廳", location: "840高雄市大樹區學城路1段12號A區5樓", phone: "07-6569009", image: "1010.jpg", isVisited: false),
]

4. 把準備好的圖片拖曳到Assets.xcassets

5. 資料準備好了,讓我們來設定表格要呈現的餐廳內容。點選Storyboard內的Table View Cell,將Style設為Basic。

6. 將RestaurantTableViewController.swift內的numberOfRows

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return restaurants.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
   let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
   // Configure the cell...
cell.textLabel?.text = restaurants[indexPath.row].name
cell.imageView?.image = UIImage(named: restaurants[indexPath.row].image)
   return cell
}

完整的程式碼如下:

7. 執行Run,看到結果囉!

>>>下一篇:7. UITableView Custom Cell

>>>觀念介紹: Class、Object

參考:Beginning iOS Programming with Swift by Simon Ng