2013-05-19 2 views
3

Я использовал следующий код, чтобы установить вид заголовка раздела uitableview. Проблема в том, что цвет фона (mainLightColor_2) не отображается до тех пор, пока я не прокручу таблицу. Как я могу сделать цвет фона отображаемым при загрузке?фон заголовка uitableview не показывается до прокрутки

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 24)]; 
    headerView.backgroundColor = [Utility mainLightColor_2]; //mainLightColor is a blue color 

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 2, 200, 20)]; 
    label.backgroundColor = [UIColor clearColor]; 
    label.textColor = [Utility mainDarkColor]; 
    label.text = @"Past Activities"; 
    [headerView addSubview:label]; 

    return headerView; 
} 

Перед свитка: Before scroll

После свитка: After scroll

+0

Попробуйте установить 'label.opaque = NO; ' – murat

+0

Это не работает. – zhengwx

+0

Просто попробовал свой код, и он отлично работает, может быть, проблема связана с ** ** методом [Utility mainLightColor_2] **, попробуйте заменить его ** [UIColor blueColor] ** только для тестирования и посмотреть, что произойдет. –

ответ

1

Так что я нашел решение. Тем не менее, я до сих пор не понимаю, почему установка цвета фона headerView не работает.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 24)]; 

    UIView *headerViewBackground = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 24)]; 
    headerViewBackground.backgroundColor = [Utility mainLightColor_2]; 
    [headerView addSubview:headerViewBackground]; 

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 2, 200, 20)]; 
    label.backgroundColor = [UIColor clearColor]; 
    label.textColor = [Utility mainDarkColor]; 
    label.text = @"Past Activities"; 
    [headerView addSubview:label]; 

    return headerView; 
} 
+0

Спасибо за это! Аналогичная проблема возникла и в iOS 8, где вставка заголовка не отображает цвет фона до тех пор, пока вы не прокрутите его и не покажете его значение альфа, пока оно не исчезнет с экрана и снова включится. Эта работа вокруг его сортирует. – CMash

1

Вы должны также осуществлять - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section метод.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 
    return 24; 
} 
+0

Я реализовал этот метод. – zhengwx

Смежные вопросы