我想获取分组表视图的所有视图来更改标签颜色并设置背景颜色。
问问题
854 次
3 回答
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;
}
于 2012-05-27T11:40:02.407 回答
0
太好了,您找到了解决方案。
几个建议:
不要将 CGRect 硬编码为框架的宽度,而是使用
self.view.size.width
宽度(例如,如果您处于横向或 Apple 曾经推出具有不同屏幕尺寸的 iPhone);您可能希望同时使用
autoresizingMask
标签和包含标签的视图,以便它们随着屏幕方向的变化而调整大小,或者确保您[self.tableview reloadData]
在方向变化时调用;和这显然是一个单行
sizeWithFont:constrainedToSize:lineBreakMode
标签tableView:heightForHeaderInSection:
...
于 2012-05-27T16:53:34.930 回答
0
您还需要添加 textColor:
label.textColor = [UIColor colorWithRed:0.265 green:0.294 blue:0.367 alpha:1.000];
于 2012-07-20T08:32:58.050 回答