通常我的屏幕显示如下:
当我使用此代码时
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];
[headerView setBackgroundColor:[UIColor whiteColor]];
return headerView;
}
我的输出是这样的:
我的部分索引文字不可见。我知道节标题视图添加了我的自定义视图。我想更改节标题颜色并显示索引文本。
@Khawar回答我得到了这个输出
答案 0 :(得分:1)
尝试设置UITableView标题的高度。
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 30.0;
}
如果您只需要在显示部分标题时更改部分标题的背景颜色,则无需为此创建自定义视图。自定义视图将覆盖您的默认标题,并且您的标题不会显示,除非您在自定义视图中添加自定义UILabel。只需使用以下UITableView
委托来更改背景颜色。
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
view.tintColor = [UIColor redColor];
}
查看之前和之后的结果。
<强> ----------------之前------------------ 强>
<强> ----------------后------------------ 强>
希望这可以解决问题。
答案 1 :(得分:1)
这是100%工作,您可以更改索引或标题文本颜色
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
view.tintColor = [UIColor blueColor];
// if you have index/header text in your tableview change your index text color
UITableViewHeaderFooterView *headerIndexText = (UITableViewHeaderFooterView *)view;
[headerIndexText.textLabel setTextColor:[UIColor blackColor]];
}
输出:
答案 2 :(得分:0)
您必须为部分提供标题...或者您可以使用此方法..
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UILabel *headerView = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];
[headerView setBackgroundColor:[UIColor colorWithWhite:0 alpha:0.5]];
headerView.text = [self tableView:tableView titleForHeaderInSection:section];
return headerView;
}