iOS开发学习笔记——表格1(UITableView)
来源:互联网 发布:sql server 百度网盘 编辑:程序博客网 时间:2024/05/01 19:15
UITableView的使用
相关官方文档参考:Table View Programming Guide for iOS
使用表格的基本规则
1、 表格使用的数据源一般放在数组中
2、 遵循的协议UITableViewDataSource 、UITableViewDelegate
3、 使用表格必须实现三个代理协议方法(确定表格的块、行、每行的内容)
4、 数据源(一般为控制器)根据索引路径(indexPath:即定位到唯一的一个单元格)为某一个单元格提供数据;
5、 索引路径是NSIndexPath对象,拥有两个属性:段(section)、行(row),即通过这两个属性定位UITableView中的唯一一个单元格cell
6、 掌握代理方法实现点击单元格事件响应(打开下一页。。。。。。)【didSelect….】
7、 使用代理方法编辑单元格[editActionForRowAtIndexPath 、 will/didEditing…..]
实现步骤:
实现editActionsForRowAtIndexPath:方法 返回值为数组
创建UITableViewRowAction对象(需要几个操作,创建几个)
刷新表格:对tableview的cell进行操作后,一定记得需要重新刷新表格,更新样式
装入数组返回。
8、 对表格进行编辑后一定记得刷新表格【reloadData】
学习内容源于:宏创学院 » UITableView详解:1-数据源方法
对表格进行增删
注意点:
1、确定删除位置
2、处理数据源【特重要,不然会发生错误终止,因为行数不对应/不够,】
3、删除或插入行
具体代码参考:
/** * 选择评分 */ func tableViewSelectScore(){ self.tableview?.beginUpdates() //开始更新表格(一般是用于插入或删除行) let tempIndexPath = [NSIndexPath(forRow: 2, inSection: 0)] //首先确定哪一个路径改变(某一段的某行(基数是从0开始的))) if showScore{//如果已经点开拉评论 //说明评论已经打开,需要取消掉评论行 //1.取消前需要处理数据源,行数减少一个 self.titleArray.removeAtIndex(2) //2移除那行 self.tableview?.deleteRowsAtIndexPaths(tempIndexPath, withRowAnimation: UITableViewRowAnimation.Right)//从右边划出 self.showScore = false //如果是有一个可选显示的,可以设一个标记变量 }else{ self.titleArray.insert("", atIndex: 2) //很重要,在表格对应的数据源添加数据,不然就会发生表格行数不够的错误,引起程序终止 self.tableview?.insertRowsAtIndexPaths(tempIndexPath, withRowAnimation: UITableViewRowAnimation.Left) //插入位置是【参数是数组】,及动画效果(从左到右) self.showScore = true //显示星星 } self.tableview?.endUpdates() //结束更新 }
使用提示:
1、表格视图的Footer 与header,注意与sectione的footer和header不是同一个:宏创学院 » UITableView详解:13-TableView的Header与Footer
2、TableView中,一般情况下都需要实现上拉刷新与下拉加载操作。这两个功能可以使用国内开发者开发(国内大神李明杰)的一款优秀框架–MJRefresh来实现。
3、如何在表格右侧添加序号栏,使用以下协议方法:
-(NSArray <NSString *> *) sectionindexTiltleForTableView:(UItableView *) tableview
显示的序号内容由数组提供。
3、如何不显示空表格的分割线?
使用如下语句self.table.tableFooterView = [[UIView alloc] init];
或者:将UITableView的separatorStyle属性设置为UITableViewCellSeparatorStyleNone即可
表格使用之UITableViewCell
1、系统单元格组成
单元格(UITableViewCell)是tableView的组成单元,每一个单元格都是一个UITableViewCell对象,默认情况下,一个单元格具有一个icon图片、一个title、一个detail title,以及一个accessory
2、系统自带单元格样式是?(四个)
3、使用单元格时更常用的是自定义单元格
4、单元格的配置细节(在cellForAtRowIndexPath方法中实现)
在UITableView内部有一个缓存池,使用 (UITableViewCellStyle) reuseIdentifier:(NSString *)方法指定一个可重用标识,就可以将这个cell放到缓存池
a、 设置常量,获取到IB中TableViewCell中Identifier(在IB中应该设置,否则可能出错)
b、 获取cell(从缓冲池中),使用dequeueReusableCellWithIdentifier方法实现,【注意,在后面转换为UITAbleViewCell(as! UITAbleViewCell)】
c、 获取数据源
d、 设置Cell的内容
部分代码:
学习内容源于:宏创学院»UITableView详解:4-了解单元格(UITableViewCell)
表格(UITAbleView)->组/块/段(section)
1、 如果使用组,那么数据源就应该放在二维数组中
2、 记得设置section数目
3、 使用组块,在IB中的TableViewController属性里的样式必须选择Grouped,否则还是会按照普通表格显示。
4、 如果section的header以及footer仅仅需要显示一些文字提示,如下图所示,则可以直接调用tableview的代理方法titleForHeaderInSection返回值为String)来设置
5、 可以设置sectionIndexTitlesForTableView方法显示索引内容(右侧显示),还可以设置索引的各种属性(颜色、背景、点击背景)
6、 【tip】可以通过清除背景颜色达到索引的整体一致
二、自定制header/Footer(基本通过代码完成)
1、 还需要添加一些UI控件或定制样式,这就需要通过tableview的代理方法viewForHeaderInSection(返回值为UIView)内进行定制
2、 定制思想:创建需要的控件对象,配置好控件对象,创建一个视图对象,将控件对象添加到视图对象并布局好即可,做好相应的响应处理(必要时)
学习内容源于:宏创学院»UITableView详解:6-分段(Section)
- iOS开发学习笔记——表格1(UITableView)
- iOS开发学习笔记——UITableview
- iOS开发学习笔记 UITableview
- IOS学习笔记——UITableView(一)
- IOS学习笔记——UITableView (二)
- IOS学习笔记——UITableView(三)
- iOS学习笔记之UITableView(1)
- iOS UITableView(表格)
- iOS开发学习笔记——表格自定义单元格(UITableViewCll)
- IOS UITableView 学习笔记
- iOS 学习笔记 uitableView
- IOS开发笔记30-UITableView(1)
- IOS开发笔记33-UITableView(1)
- 开发学习笔记--UItableView
- iOS学习笔记—— UItableView 控件的简单使用
- iOS学习笔记-030.UITableView——自定义单元格UITableViewCell
- ios学习笔记(6)UITableView初探
- IOS学习笔记-UITableView (一)
- 使用CocoaPods安装第三方库
- 第四次上机实践项目-项目3-时间类-(2)
- 斯坦福大学UFLDL深度学习推荐阅读列表UFLDL Recommended Readings
- 泛型的高级应用
- BZOJ1029建筑抢修
- iOS开发学习笔记——表格1(UITableView)
- python读取目录下的所有文件和文件夹
- CodeForces - 618B Guess the Permutation (模拟)
- 在oracle中创建自动增长字段
- ViewPager实现Gallery画廊效果——仿慕课网app-求职路线计划-效果(一)
- Java中static修饰类的问题
- objective-c - 基础篇 - NSNumber与NSdate与NSExcetion
- 设计模式学习笔记——单例模式
- 实例变量和类变量的区别