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。