1.表视图从遵循UITableViewDelegate
协议的对象获取配置数据,从遵循UITableViewDataSource
协议的对象获得行数据。必须实现以下方法
1 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; |
随便介绍下其他常用选用方法
1 | // UITableViewDataSource中常用方法 |
1 | // UITableViewDelegate中常用方法 |
2.重用UITableViewCell
因为ios设备内容有限而且UITableView
对象要显示大量的记录,并且每条记录都需要创建相对用的UITableViewCell
对象,就会耗尽ios的内容资源。因此需要重用UITableViewCell
。
1 | TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; |
当用户滚动UITableView
对象时,部分的UITableViewCell
对象会移出窗口,这时UITableView
对象会将移出窗口的UITableViewCell
对象放入UITableViewCell
对象池等待重用。
当UITableView
对象要求数据源返回某个UITableViewCell
对象时,数据源可以查看对象池。如果有未使用的UITableViewCell
对象,就可以用新的数据配置这个UITableViewCell
对象,然后将其返回给UITableView
对象,从而避免创建对象。
这么说可能不是很好理解简洁点说就是当第一行的cell
被往上滑出屏幕的时候,在屏幕下面第一个显示新的cell
就是被我们滑出屏幕的cell
。
3.UITableViewCellStyle
当不使用创建UITableViewCell
来设置cell
的样式的时候可以使用下面的UITableViewCellStyle
来设置cell
的样式
UITableViewCellStyleDefault
UITableViewCellStyleValue1
UITableViewCellStyleValue2
![] (https://github.com/zhigangwu/zhigangwu.github.io/blob/master/images/16.png?raw=true)
UITableViewCellStyleSubtitle
![] (https://github.com/zhigangwu/zhigangwu.github.io/blob/master/images/17.png?raw=true)
1 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
4UITableView
的编辑
开启UITableView
的编辑功能将editing
属性设置为YES.
1 | - (void)viewDidLoad { |
点击图中带减号的红圆圈``cell
会向左侧移动右侧会出现Delete
按钮。实现Delete
按钮,添加下面方法
1 | - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath |
注意因为在删除cell
的同时其实是在删除数组中的数据因此该数据必须是可变的
所以必须是NSMutableArray
类型而非NSArray
。