目录
按照一贯的对知识点的整理,大家可以跟着我的逻辑由总到分由整体到部分的思路进行理解。
首先,UITableViewDelegate协议是什么?在苹果官方文档中对他进行了简洁而又明确的定义:“Methods for managing selections, configuring section headers and footers, deleting and reordering cells, and performing other actions in a table view.” 我的理解是UITableViewDelegate协议包含了对选择的管理,对块的header以及footer的设置,删除单元格或者对单元格重排序,以及在表视图中表现其它的操作。
主要的方面有:
- 创建和管理自定义的页脚页头视图。
- 为行,header以及footer自定义高度。
- 为更好的滚动支持提供高度估计。
- 设置行内容的缩进。
- 响应行点击。
- 对在表格行中间的滑动以及其他操作进行响应。
- 支持编辑表格中的内容。
在表格视图中,使用的是NSIndexPath对象对行和单元进行指定。
接下来是对具体的每个方法的讲解:
行设置
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath;
参数:
- tableView:tableView把即将要发生的事件通知给代理。
- cell:指的是表视图将要使用来绘制行的单元格。
- indexPath:为行在表视图中定位。
表视图会在对Cell绘制行之前将消息发送到实现代理的委托中,委托在👆的方法中:实现单元对象的自定义,以及选择和背景颜色的操作等。
- (NSInteger)tableView:(UITableView *)tableView
indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath;
返回值:返回制定行的深度,现实它在这个块中的层次结构位置。
- (BOOL)tableView:(UITableView *)tableView
shouldSpringLoadRowAtIndexPath:(NSIndexPath *)indexPath
withContext:(id<UISpringLoadedInteractionContext>)context