【iOS系列】- UITableView的使用技巧

【iOS系列】- UITableView的使用


UITableView的常用属性

indexpath.row:行

indexpath.section:组

separatorColor:分割线的颜色

separatorStyle:分割线样式

用来自定义头部和尾部自定义view

只需要设置高度,宽度设置无效

tableHeaderView;

tableFooterView;

table中展示的数据是从模型(或者其他来源-数据源)中取得的,因此要更改表格数据,只需要更改数据源中得数据,并刷新表格即可。(不要直接更改tableviewcell中textLabel中得text数据,这样上下拖动tableview还是会显示原来的数据)

1:修改模型数据

2:刷新表格

常用的刷新表格的方法

//删除数据,表格的刷新
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationBottom]; //插入新数据,表格的刷新
[self.tableView insertRowsAtIndexPaths:(NSArray *) withRowAnimation:(UITableViewRowAnimation)] //全局刷新
reloadData;

UITableViewCell的常用属性

accessoryType:cell右边的指示器

accessoryView:可自定义右边的view

backgroundView:自定义背景view

backgroundColor//优先级低于backgroundView

selectedBackgroundView


常用代理代理方法

//一共有多少组数据
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; //每一组有多少行数据
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; //每一行显示什么内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; //选中某一行
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath //取消选中某一行
(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath //刷新表格
[self.tableView reloadData];
//注意IndexPaths参数是NSIndexPath的数组
[self.tableView reloadRowsAtIndexPaths:(NSArray *) withRowAnimation:(UITableViewRowAnimation)] // 代理方法,实现了这个方法,就会自动实现了滑动删除功能。
/**
* @param editingStyle 编辑样式:添加,删除
* @param indexPath 删除的行号
*/
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
//由于tableview还有插入模式,故这里增加判断
if (editingStyle == UITableViewCellEditingStyleDelete) {//删除操作 }
}


注:tableView加载完毕后没有数据,一定要设置相应的代理方法

tableView.delegate = self;

tableView.dataSource = self;


xib封装view

1:新建xib描述view的内部结构

2:新建类,继承自view(也取决于xib的跟对象,比如UITableViewCell),

3:把xib的类型修改为新建类的类型,并把xib内部的空间和类进行连线

4:提供类方法,可以返回自定义的view


/**
* 构造方法,初始化对象时候调用
* 自定义cell的时候,在这个方法中添加需要显示的子控件
*/
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

//延时操作

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

code to be executed after a specified delay

});


作者:Darren

微博:@IT_攻城师

github:@Darren90

博客:http://www.cnblogs.com/fengtengfei/

欢迎您的访问...


上一篇:UITableView 的一些奇淫技巧1


下一篇:UITableView优化技巧