2012-01-12 3 views
4

Я хочу изменить tableHeader высоту, шрифт и т.д ...heightForHeaderInSection не получает вызов?

Я реализовал UITableViewDelegate, UITableViewDataSource и добавил heightForHeaderInSection и viewForHeaderInSection. Но эти два метода не вызываются. Другие методы, такие как numberOfRowsInSection/cellForRowAtIndexPath, работают нормально. Я могу видеть таблицу, но без заголовка :(

Любая идея

вот код:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [self.poHeader.itemList count]; 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    NSLog(@"numberOfSectionsInTableView"); 
    return 1; 
} 

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ 
    NSLog(@"*******height"); 
    return 44.0; 
} 


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 

    NSLog(@"***in viewForHeader In section"); 

    UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(2, 166, 300.0, 44.0)]; 
    UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
    headerLabel.backgroundColor = [UIColor clearColor]; 
    headerLabel.opaque = NO; 
    headerLabel.textColor = [UIColor blackColor]; 
    headerLabel.highlightedTextColor = [UIColor whiteColor]; 
    headerLabel.font = [UIFont systemFontOfSize:13]; 
    headerLabel.frame = CGRectMake(2, 166, 300.0, 44.0); 

    headerLabel.text = @"Part No. Description Ext Cost"; // i.e. array element 
    [customView addSubview:headerLabel]; 

    return customView; 
} 
+0

Даже если были вызваны методы делегата, заголовок заголовка появится не в том месте (слишком низко). Его происхождение, вероятно, должно быть 0,0 вместо 2,166, поскольку это подзадача customView. – Anna

ответ

16

Почти год спустя, но я думаю, вы только установить источник данных и ? не делегат

Вы должны иметь что-то вроде этого в контроллере:

myTableview.delegate = self; 
myTableview.dataSource = self; 

Вы упомянули, что вызываются вызовы numberOfRowsInSection/cellForRowAtIndexPath. Оба относятся к UITableViewDataSource, а не к UITableViewDelegate.

+0

Почти 2 года спустя это заслуживает проверки в качестве принятого, так как является правильным. – giampaolo

+1

Это сработало! Это правильный ответ! – 4FunAndProfit

+0

Я не знаю почему, но даже несмотря на то, что представление таблицы было подключено к контроллеру представления как к делегату, так и к источнику данных, каким-то образом соединение делегата было нарушено. Не удалось проследить его, но этот ответ дал мне способ понять это. –

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