无法获取UITableView页脚

时间:2015-06-09 19:51:50

标签: ios objective-c uitableview

我正在尝试更改UITableView部分的页脚的背景颜色。但是,我没有运气。

UITableViewCell *cell = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:i]];

cell.backgroundColor = [UIColor redColor];
cell.textLabel.textColor = [UIColor redColor];
cell.detailTextLabel.textColor = [UIColor redColor];

UITableViewHeaderFooterView *header = [_tableView footerViewForSection:i];
[header setBackgroundColor:[UIColor redColor]];

第一部分 - 我在单元格中设置颜色 - 正在工作。第二部分 - 我想设置页脚颜色 - 不是。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要在cellForRowAtIndexPath方法内和footerViewForSection方法内设置颜色。

表视图将根据需要请求单元格,页眉和页脚。对于细胞,很可能会重复使用相同的细胞,这就是细胞颜色似乎有效的原因。但是,如果你进行一些滚动,你会发现它可能会停止工作。

您的标题视图不起作用,因为您要求在代码中查看视图,但这不会与该表使用的视图相同,因为它将要求它自己的视图。

因此,您应该在请求单元格,页眉或页脚时设置颜色。

理想情况下,应该从数据模型中驱动单元格/页眉/页脚配置。例如在cellForRowAtIndexPath内,您应该创建适合索引路径的数据模型条目的单元格。根据数据模型条目所需的颜色设置其颜色。然后,所有更改都在数据模型上完成,然后重新加载受影响的部分和/或行。

答案 1 :(得分:0)

-footerViewForSection:是否返回值?我的猜测是它正在返回nil。您是否在委托方法中为表视图提供页脚视图?如果你不是,它就不存在。如果是,您可以设置颜色。