无法在IOS 7.0中更改uitableviewheaderfooterview的背景颜色

时间:2014-05-17 18:57:02

标签: ios uitableview ios7

在iOS 7.0之前甚至ios 7.0的stackoverflow中,有一个number解决方案。但没有一个对我有用。

似乎大多数人都无法将背景颜色设置为透明。在我的情况下,我想摆脱透明的颜色,以便“星期日4日”获得稳固的背景,同时向下滚动当天的时间不会影响截图中的标题。

enter image description here

我试图设置色彩颜色和内容视图而没有任何运气:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    FTDayHeaderView *header = [[self recordTableView] dequeueReusableHeaderFooterViewWithIdentifier:@"FTDayHeaderView"];
    //[header setTintColor:[UIColor greenColor]]; Didn't work either
    header.contentView.backgroundColor = [UIColor blackColor];
    return header;
}

这是FTDayHeaderView在IB中的设置:

enter image description here

我已停用opaque而没有任何效果。

更新: 按要求。

#import "FTDayHeaderView.h"

@implementation FTDayHeaderView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

2 个答案:

答案 0 :(得分:3)

不确定它是否解决了你的问题,但它解决了我的问题。尝试在willDisplayHeaderView中设置颜色并将其调整为您的代码。

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{    
    if ([view isMemberOfClass:[UITableViewHeaderFooterView class]]) {
        ((UITableViewHeaderFooterView *)view).backgroundView.backgroundColor = [UIColor whiteColor];
    }
}

答案 1 :(得分:1)

试试这个:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UITableViewHeaderFooterView *sv = [self.tableView dequeueReusableHeaderFooterViewWithIdentifier:@"SomeViewId"];
    sv.backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 48.0)];
    sv.backgroundView.backgroundColor = [UIColor groupTableViewBackgroundColor];
    return sv;
}

我注意到,backgroundView为nil,并为背景颜色创建了一个视图。 (您可能需要更改视图的尺寸... 48是我的标题视图的高度。)