swift的UITableView的使用
UITableView是app开发中经常使用到的控件,功能非常强大,多用于数据的显示。
以下以一个简单的实例来介绍其基本使用方法。
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    private var dataSource: Dictionary<String, [String]>? //定义表格的数据源
    private var keyArray: [String]?
    private let cellIdef = "zcell"
    override func viewDidLoad() {
        super.viewDidLoad()
        //初始化数据
        demoData()
        var frame = self.view.bounds
        frame.origin.y += 20
        frame.size.height -= 20
        //初始化表格
        var tableView = UITableView(frame: frame, style: UITableViewStyle.Plain)
        //设置重用标志
        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellIdef)
        tableView.tableFooterView = UIView()
        tableView.dataSource = self
        tableView.delegate = self
        self.view.addSubview(tableView)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    private func demoData() {
        dataSource = ["国家": ["中国", "美国", "法国", "德国", "意大利", "英国", "俄罗斯"],
                      "种族": ["白种人", "黄种人", "黑种人"]
                     ]
        keyArray = ["国家", "种族"]
    }
    // MARK: - UITableViewDataSource
    //设置表格的组数
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return keyArray!.count
    }
    //设置表格每组的行数
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        var array = dataSource![keyArray![section]]
        return array!.count
    }
    //设置表格的内容
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier(cellIdef, forIndexPath: indexPath) as UITableViewCell
        var array = dataSource![keyArray![indexPath.section]]
        cell.textLabel.text = array![indexPath.row]
        return cell
    }
    //设置每组的标题
    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
        return keyArray![section]
    }
    //MARK: - UITableViewDelegate
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        tableView.deselectRowAtIndexPath(indexPath, animated: true)
    }
}
swift的UITableView的使用的更多相关文章
- iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战
		UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高 ... 
- Swift中UITableView的简单使用
		Swift中的注释 使用"// MARK:- 注释内容",对属性或方法进行注释 使用"///注释内容"对属性或方法提供调用说明的注释 使用extension对同 ... 
- Swift开发UITableView常用的一些细节知识点介绍
		<code class="objectivec"><strong><span style="font-size:18px;"> ... 
- Swift 给UITableView 写extension 时 报错  does not conform to protocol 'UITableViewDataSource'
		那是因为你没有实现 数据源和代理方法 实现下就好了 func tableView(_ tableView: UITableView, numberOfRowsInSection section: In ... 
- [iOS]swift之UITableView添加通过xib创建的headerView坑爹问题
		情景是这样的,我UITableView添加了一个HeaderView,这个HeaderView是通过xib创建,是UIView.出来的结果却出乎意料,UITableView的Cell最顶部的几个被He ... 
- Swift - UIView,UItableView,Cell设置边框方法
		// 设置边框的宽度 cell.layer.borderWidth = 1 // 设置边框的颜色 cell.layer.borderColor = UIColor.blackColor().CGCol ... 
- swift实现UItableview上拉下拉刷新模块
		最近用写个项目 发现上拉下拉刷新模块没找到合适的 so 自己写了一个 由于最近忙 教程就不写了 里面有 直接贴地址https://github.com/DaChengTechnology/DCRefr ... 
- iOS开发——高级UI&带你玩转UITableView
		带你玩装UITableView 在实际iOS开发中UITableView是使用最多,也是最重要的一个控件,如果你不会用它,那别说什么大神了,菜鸟都不如. 其实关于UItableView事非常简单的,实 ... 
- swift系统学习控件篇:UITableView+UICollectionView
		工作之余,学习下swift大法.把自己的学习过程分享一下.当中的布局很乱,就表在意这些细节了.直接上代码: UITableView: // // ViewController.swift // UIt ... 
随机推荐
- Alert Messager
			<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ... 
- iOS开源项目:DYNavigationController
			DYNavigationController是一个实现了左右滑动导航的项目. https://github.com/dyang/DYNavigationController 首先用之前的跟视图初始化D ... 
- Nginx发展现状及未来特性
			Nginx ("engine x")是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器,其特点是占用内存少,并发能力强.到目前完为止,Ngi ... 
- jQuery/javascript实现IP/Mask自动联想功能
			之前做一个云计算的项目,涉及到一个安全组自动联想的功能,思想是这样的: 安全组规则之间是可以相互引用的,也可以自己是自己手动输入的ip/mask,这时候可以加一个功能,实现securityGroupI ... 
- html5的classList属性介绍和原生js实现jQuery的addClass,removeClass,hasClass方法
			其实html5已经扩展了class操作的相关API,其中classList属性就以及实现了class的增删和判断. classList属性的方法有: add(value) 添加类名,如果有则不添加 c ... 
- java设计模式4--建造者模式(Builder)
			本文地址:http://www.cnblogs.com/archimedes/p/java-builder-pattern.html,转载请注明源地址. 建造者模式 将一个复杂对象的构建与它的表示分离 ... 
- M.2接口NVMe协议的固态硬盘读写速度是SATA接口的两倍
			原文:https://www.sohu.com/a/203688929_615464 中午走路的时候,同事说的,M 2 nvme接口的更快. 树莓派开发板可以跑linux . ------------ ... 
- KMP Client README
			KMP Client README About KMP is a mod for v0.22 of Kerbal Space Program that adds a multiplayer game ... 
- IOS APP开发UI上的尺寸注意问题(屏幕、适配、分辨率)
- PHP XML Parser函数
			PHP XML Parser 函数 PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XM ... 
