SwiftSwift

16.Swift UITableView的简单使用

2016-02-26  本文已影响1782人  Liwx

@(〓〓 iOS-Swift语法)[Swift 语法]


目录


Swift中UITableView的简单使用

// 遵守协议
class ViewController: UIViewController , UITableViewDataSource, UITableViewDelegate {

}

Swift使用协议注意点


Swift中类的扩展


UITableView的简单使用

import UIKit

// ------------------------------------------------------------------------
// tableView的基本
class ViewController: UIViewController {

    // 注意: Swift中mark注释的格式: MARK:-
    // MARK:- 属性
    let cellID = "cell"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 1.创建tableView,并添加的控制器的view
        let tableView = UITableView(frame: view.bounds)
        
        // 2.设置数据源代理
        tableView.dataSource = self
        tableView.delegate = self
        
        // 3.添加到控制器的view
        view.addSubview(tableView)
        
        // 4.注册cell
        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellID)
    }
    

}

// ------------------------------------------------------------------------
// Swift中类的扩展: Swift中的扩展相当于OC中的分类
extension ViewController: UITableViewDataSource, UITableViewDelegate {

    
    // MARK:- UITableViewDataSource数据源
    // 必须实现UITableViewDataSource的option修饰的必须实现的方法,否则会报错
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 20
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        /*
        // ----------------------------------------------------------------
        // 使用普通方式创建cell
        let cellID = "cell"
        
        // 1.创建cell,此时cell是可选类型
        var cell = tableView.dequeueReusableCellWithIdentifier(cellID)
        
        // 2.判断cell是否为nil
        if cell == nil {
        cell = UITableViewCell(style: .Default, reuseIdentifier: cellID)
        }
        
        // 3.设置cell数据
        cell?.textLabel?.text = "测试数据\(indexPath.row)"
        
        return cell!
        */
        
        let cell = tableView.dequeueReusableCellWithIdentifier(cellID)
        
        cell?.textLabel?.text = "测试数据\(indexPath.row)"
        
        return cell!
        
    }
    
    // MARK:- UITableViewDelegate代理
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        print("点击了\(indexPath.row)")
    }
}

上一篇下一篇

猜你喜欢

热点阅读