Swift tableView基本使用

weixin_34208283發表於2016-04-06
import UIKit

// 1.在Swift中遵守協議直接利用逗號隔開
class ViewController: UIViewController {

    override func loadView() {
        let tableView = UITableView()
        tableView.dataSource = self
        tableView.delegate = self
        view = tableView
    }
    
    // MARK: - 懶載入
    lazy var  listData: [String]? = {
       return ["me", "she", "he", "other", "ww", "zl"]
    }()
    
}

// extension 相當於OC的 Category,在Swift中遵守協議直接利用逗號隔開
extension ViewController: UITableViewDataSource, UITableViewDelegate
{
    
    // MARK: - UITableViewDataSource
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // TODO: 有問題, 開發中不應該這樣寫
        return (listData?.count)!
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("cell")
        if cell == nil
        {
            cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
        }
        
        cell?.textLabel?.text = listData![indexPath.row]
        
        return cell!
    }
    
    // MARK: - UITableViewDelegate
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        print(listData![indexPath.row])
    }
}


相關文章