0

我想获取分组表视图的所有视图来更改标签颜色并设置背景颜色。

4

3 回答 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

太好了,您找到了解决方案。

几个建议:

  1. 不要将 CGRect 硬编码为框架的宽度,而是使用self.view.size.width宽度(例如,如果您处于横向或 Apple 曾经推出具有不同屏幕尺寸的 iPhone);

  2. 您可能希望同时使用autoresizingMask标签和包含标签的视图,以便它们随着屏幕方向的变化而调整大小,或者确保您[self.tableview reloadData]在方向变化时调用;和

  3. 这显然是一个单行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 回答