2016年2月18日 星期四

iOS筆記:Swift練習(1)

第一個實作永遠都是要來個TableView.

利用Stack View來客製化Cell

按著Command選取紅色匡中的三個Label先按下底下Stack的按鈕, 並透過調整檢視器中的”Spacing”來調整各個Label之間的間距.

再將這三個Label跟ImageView合成一個Stack.

enter image description here

建立連結

IBOutlet:用來指出可以和Storyboard中的視圖物件連結的屬性
IBAction:可能經由某個事件所觸發的動作方法

    @IBOutlet var thumbnailImageView: UIImageView!
    @IBOutlet var nameLabel: UILabel!
    @IBOutlet var locationLabel: UILabel!
    @IBOutlet var typeLabel: UILabel!

將Cell的ImageView改成圓形

每一個UIKit的視圖(ex. UIView, UIImageView…)的背後都是CALayer類別的實體, 這些物件主要設計作為視圖背後的管理以及處理視圖相關動畫.

     cell.thumbnailImageView.image = UIImage(named: restaurantImages[indexPath.row])

     cell.thumbnailImageView.layer.cornerRadius = 30.0
     cell.thumbnailImageView.clipsToBounds = true

enter image description here

Note

  1. ViewController的箭頭不見得話, 可以勾選“Is initial View….”.
    enter image description here

  2. as! & as?
    向下轉型可以讓你轉換一個類別的值至其衍生的類別.
    ex. tableView.dequeueReusableCellWithIdentifier理論上會回傳標準的TableViewCell但如果你使用自訂的Cell. 就需要經過轉型.

如果你清楚轉換後的內容為何則可以使用 as!. 如果不清楚某個型態的值是否可以轉換至另一個則使用as?.

  1. 假如設定都正常且code都打完了, 但是就是沒有值出現在cell中. 請確認Storyboard是否有建立連結.
    enter image description here

  2. UITableView Protocol
    UITableViewDataSource: 定義了處理表格資料的方法.
    UITableViewDelegate: 專門處理UITableView section的heading 和 footer還有表格列的選擇與Cell的排序.

  3. 閱讀文件
    將滑鼠移到一個類別或是協定上, 然後按下CMD+Ctrl+? 就會彈出一個視窗.

沒有留言:

張貼留言