about 2 years ago

How to custom UITableViewCell with Swift

隨手筆記,詳細資訊可以參考網路上的教學素材,推薦 iTunesU 上 standford 的 iOS 開發課程,本篇是基於 chapter 10.tableview 的筆記。

Start custom table view cell

在 Storyboard 把 cell 變成 custom
新增 cocoatouch TweetTableViewCell 檔案繼承 UITableViewCell
把 cell 的 class 設為 TweetTableViewCell
把 cell 裡面的物件都跟 TweetTableViewCell 裡面變數連結

UITableViewCell class 裡面定義物件 ex:

TweetTableViewCell.swift
var tweet: Tweet {
     didSet {
          updateUI()
     }
}

func updateUI() {
    // Do some UI Stuff

}

在 UITableViewController 裡面 cell.tweet = tweet 即可

TweetTableViewController.swift
struct Storyboard {
    static let CellReusIdentifier = "TweetCell"
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier(Storyboard.CellReusIdentifier) as! NoteTableViewCell
    
    cell.tweet = tweets[indexPath.row]
    
    return cell
}

Extra:

自動判斷 table cell 高度:

UITableViewController viewDidLoad

TweetTableViewController.swift
override func viewDidLoad() {
    super.viewDidLoad()
    tableView.estimatedRowHeight = tableView.rowHeight
    tableView.rowHeight = UITableViewAutomaticDimension
}

Table View Pull to refresh

TableViewController pull to refresh
選取 table view controller 然後把 refreshing 改成 Enabled
然後去 outline 找到 refresh control, ctr drag 到 controller 就可以了

TweetTableViewController.swift
@IBAction func refresh(sender: UIRefreshControl?) {
    // Do request

        
    sender?.endRefreshing()
}
← iOS - Todo App - Realm - Tutorial
 
comments powered by Disqus