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 ...
随机推荐
- 解决win8/8.1系统安装.net framework 3.5出现0x800F0906代码错误
解决方案一. 首先打开windows更新,检查是否有系统更新要安装,因为这个问题可能是导致.net 3.5无法安装的罪魁祸首,要检查windows更新,可以右键“这台电脑”点击“属性”,打开后,点击左 ...
- ssh免密登录方法不生效?Authentication refused: bad ownership or modes for directory
机器A通过ssh登录机器B,方法有两种: 1.密码方式 2.密钥方式: 两种方式同时开启的时候,优先使用密钥方式. 密钥登录方式的配置方法是,首先在登录机器B上创建文件authorized_keys( ...
- log4net 自定义Appender
最近有个需求,使用log4net来记录日志,然后将数据保存到服务器端.一开始打算写一个windows service,定期上传日志. 后来又因为一些场景下不适应,因此直接改为保存内存中,到一定阀值之后 ...
- android:Layout_weight的深刻理解
最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出 ...
- invalidate和requestLayout方法源码分析
invalidate方法源码分析 在之前分析View的绘制流程中,最后都有调用一个叫invalidate的方法,这个方法是啥玩意?我们来看一下View类中invalidate系列方法的源码(ViewG ...
- Android -- 写xml到SD卡中
信息类 private ...
- Tetris
he Tetris game is one of the most popular computer games ever created. The original game was designe ...
- Learning English From Android Source Code:1
英语在软件行业的重要作用不言自明,尤其是做国际项目和写国际软件,好的英语表达是项目顺利进行的必要条件.纵观眼下的IT行业.可以流利的与国外客户英文口语交流的程序猿占比并非非常高.要想去国际接轨,语言这 ...
- VS下控制台执行保持(不要一闪而过)
曾经上课的时候是用VC++6.0来学习编程的,编完打印出来的东西就直接显示在控制台上.而在Visual Studio下会出现控制台一闪而过的情况.这个问题事实上是非常好解决的.方法有多种.以下列举两种 ...
- webservice接口示例(spring+xfire+webservice)
webservice接口示例(spring+xfire+webservice) CreateTime--2018年4月2日17:36:07 Author:Marydon 一.准备工作 1.1 ja ...