我希望获得分组表格视图的所有视图,以更改标签颜色并设置背景颜色。
答案 0 :(得分:2)
我找到了答案,无法获得表格视图部分的标题视图。但是您可以实现委托tableView:viewForHeaderInSection:
来重新创建标题视图和标签。以下代码将为您提供相同的标题视图和确切的标签。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section];
if (sectionTitle == nil) {
return nil;
}
// Create label with section title
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 5.5f, 300.0f, 30.0f)];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:16.5];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake(0.0, 1.0);
label.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
label.text = sectionTitle;
// Create header view and add label as a subview
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 44.0f)];
view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
[view addSubview:label];
return view;
}
答案 1 :(得分:0)
你很好,你找到了解决方案。
一些建议:
不要对CGRect硬编码框架的宽度,而是使用self.view.size.width
作为宽度(例如,如果你是横向的,或者Apple曾经介绍过一个不同的iPhone屏幕尺寸);
您可能希望对标签和包含标签的视图使用autoresizingMask
,以便在屏幕方向更改时调整大小,或确保调用[self.tableview reloadData]
方向变化;以及
这显然是一个单行标签...如果这对您有用,否则您需要使用sizeWithFont:constrainedToSize:lineBreakMode
来确定高度,无论是创建标签/视图还是回复tableView:heightForHeaderInSection:
。
答案 2 :(得分:0)
您还需要添加textColor:
label.textColor = [UIColor colorWithRed:0.265 green:0.294 blue:0.367 alpha:1.000];