3 回答
TA贡献1773条经验 获得超3个赞
我知道这个问题是针对iOS 5的,但是为了将来的读者受益,请注意,我们现在可以使用有效的iOS 6 dequeueReusableHeaderFooterViewWithIdentifier代替dequeueReusableCellWithIdentifier。
因此viewDidLoad,请致电registerNib:forHeaderFooterViewReuseIdentifier:或registerClass:forHeaderFooterViewReuseIdentifier:。然后在viewForHeaderInSection,请致电tableView:dequeueReusableHeaderFooterViewWithIdentifier:。您不能使用带有此API的单元原型(它是基于NIB的视图或以编程方式创建的视图),但这是用于出列的页眉和页脚的新API。
TA贡献1827条经验 获得超7个赞
只需使用原型单元格作为您的节的页眉和/或页脚。
添加一个额外的单元格,然后将所需的元素放入其中。
将标识符设置为特定的内容(在我的情况下为SectionHeader)
实现
tableView:viewForHeaderInSection:
方法或tableView:viewForFooterInSection:
方法用于
[tableView dequeueReusableCellWithIdentifier:]
获取标题实现该
tableView:heightForHeaderInSection:
方法。
-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
static NSString *CellIdentifier = @"SectionHeader";
UITableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (headerView == nil){
[NSException raise:@"headerView == nil.." format:@"No cells with matching CellIdentifier loaded from your storyboard"];
}
return headerView;
}
编辑:如何更改标题标题(注释的问题):
向标题单元格添加标签
将标签的标签设置为特定数字(例如123)
在您的tableView:viewForHeaderInSection:方法中,通过调用以下命令获取标签:
UILabel *label = (UILabel *)[headerView viewWithTag:123];
现在,您可以使用标签设置新标题:
[label setText:@"New Title"];
TA贡献1872条经验 获得超3个赞
在iOS 6.0及更高版本中,新dequeueReusableHeaderFooterViewWithIdentifier
API 改变了一切。
我写了一个指南(在iOS 9上测试过),可以总结如下:
子类
UITableViewHeaderFooterView
使用子类视图创建Nib,并添加1个容器视图,其中在页眉/页脚中包含所有其他视图
注册笔尖
viewDidLoad
实施
viewForHeaderInSection
并用于dequeueReusableHeaderFooterViewWithIdentifier
获取页眉/页脚
- 3 回答
- 0 关注
- 568 浏览
添加回答
举报