2015-02-09 6 views
2

Я создаю пользовательское представление как для заголовка раздела, так и для заголовка таблицы UITableView. Проблема заключается в том, что вид в разрезе (в зеленом) появляется над видом заголовка таблицы (в красном)Заголовок заголовка UITableView, отображающийся в виде заголовка таблицы

enter image description here

код для представления заголовка таблицы

self.headerImageView = [[UIView alloc] init]; 
self.headerImageView.backgroundColor = [UIColor redColor]; 
self.tableView.tableHeaderView = self.headerImageView; 

и я установить его кадр здесь

- (void)viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 
    self.headerImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.tableView.frame), 100); 
} 

код для раздела заголовка

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView *view = [[UIView alloc] init]; 
    view.backgroundColor = [UIColor greenColor]; 
    return view; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    return 40; 
} 

Что я делаю неправильно? веселит

ответ

1

Просто поместите код все - (Недействительными) viewDidLoad, как это:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.headerImageView = [[UIView alloc] init]; 
    _headerImageView.backgroundColor = [UIColor redColor]; 
    _headerImageView.frame = CGRectMake(0, 0, CGRectGetWidth(self.tableView.frame), 100); 
    self.tableView.tableHeaderView = _headerImageView; 
} 

Я обнаружил, что - (недействительными) viewDidLayoutSubviews будут вызываться много раз во время прокрутки таблицы. Возможно, это проблема.

+0

Да, я в конце концов понял, что кадр должен быть установлен в 'viewDidLoad'. – Jan

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