16.Swift UITableView的简单使用

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


iOS Swift 语法 底层原理内存管理分析 专题:【iOS Swift5语法】

00 - 汇编
01 - 基础语法
02 - 流程控制
03 - 函数
04 - 枚举
05 - 可选项
06 - 结构体和类
07 - 闭包
08 - 属性
09 - 方法
10 - 下标
11 - 继承
12 - 初始化器init
13 - 可选项


目录

  • 16.Swift Swift中UITableView的简单使用
  • Swift中UITableView的简单使用
  • Swift使用协议注意点
  • Swift中类的扩展
  • UITableView的简单使用

Swift中UITableView的简单使用

  • Swift遵守协议的方法
// 遵守协议
class ViewController: UIViewController , UITableViewDataSource, UITableViewDelegate {

}

Swift使用协议注意点

  • 必须实现协议中用option修饰的必须实现的方法,否则会报错

Swift中类的扩展

  • Swift中的扩展相当于OC中的分类

  • 使用extension关键字定义类的扩展

  • Swift中的MARK注释格式: MARK:- 注释内容


UITableView的简单使用

  • UITableView简单使用实现代码
    • 使用普通创建cell的方式
    • 使用注册cell的方式
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)")
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,276评论 4 61
  • 今天中午,我忙着准备中饭,小墨和他老爸在看《非诚勿扰》,父子俩在讨论这期的心动女生有没有牵手成功之类的事...
    一玄子阅读 300评论 1 0
  • 丽莎把端阳带到了实验室顶层的一间小套间,套间里的环境让端阳很是亲切,是智能家居。智能家居端阳并不陌生,毕竟在他出生...
    藉寞阅读 151评论 0 1
  • 又遇整数,400。 翻看以前100,200,300。 静等花开100 静等花开200 静等花开300 发现写的好幼...
    木木sani阅读 294评论 0 0