2012-05-14 4 views
0

У меня есть странное поведение на iPad, которое я не получаю на iPhone.Заголовок UITableView для раздела появляется только при прокрутке вниз

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

Перед прокрутке

http://desmond.imageshack.us/Himg525/scaled.php?server=525&filename=screenshot2012051410074.png&res=landing http://desmond.imageshack.us/Himg525/scaled.php?server=525&filename=screenshot2012051410074.png&res=landing

После прокрутки

http://desmond.imageshack.us/Himg59/scaled.php?server=59&filename=screenshot2012051410074.png&res=landing http://desmond.imageshack.us/Himg59/scaled.php?server=59&filename=screenshot2012051410074.png&res=landing

Код для создания заголовков разделов:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section]; 
    if (sectionTitle == nil || [sectionTitle isEqualToString:@""]) { 
     return nil; 
    } 

    // Create label with section title 
    UILabel *label = [[UILabel alloc] init] ; 
    label.frame = CGRectMake(12, 0, 300, 30); 
    label.backgroundColor = [UIColor clearColor]; 
    label.textColor = [UIColor blackColor]; 
    label.shadowColor = [UIColor whiteColor]; 
    label.shadowOffset = CGSizeMake(0.0, 1.0); 
    label.font = [UIFont boldSystemFontOfSize:16]; 
    label.text = sectionTitle; 

    UIImage *img = [UIImage imageNamed:@"header"]; 
    UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 0, 300, 44)]; 
    imgView.image = img; 

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 44)]; 

    [view addSubview:imgView]; 
    [view addSubview:label]; 

    return view; 
} 

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    int aSection = [[self.sectionsToDisplay objectAtIndex:section] integerValue]; 
    return [self.groupHeadings objectAtIndex:aSection]; 
} 

код Мой Tableview в:

tableViewResult = [[UITableView alloc] initWithFrame:mainView.frame style:UITableViewStyleGrouped]; 

tableViewResult.separatorColor = [UIColor clearColor]; 
[mainView addSubview:tableViewResult]; 

Я поставил делегат и источник данных в другом методе, как я сначала сделать веб-запрос перед загрузкой каких-либо данных в таблицу, то есть, когда запрос веб делается я:

tableViewResult.delegate = self; 
tableViewResult.dataSource = self; 
[tableViewResult reloadData]; 

все работает как и ожидалось, за исключением заголовка самого верхнего раздела, и только на iPad.

Любые идеи, что может вызвать такое поведение?

+0

Как вы создаете TableView, из Interface Builder или кода ?. Какова высота заголовка ?. Можете ли вы загрузить скриншот ?. –

+0

Я строю его из кода, загружаю скриншоты. – Armand

+0

Вы писали метод для раздела раздела. – Mangesh

ответ

0

Что исправили проблему изменял эту функцию:

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    int aSection = [[self.sectionsToDisplay objectAtIndex:section] integerValue]; 
    if([[self.groupHeadings objectAtIndex:aSection] isEqualToString:@""]) 
     return nil; 
    return [self.groupHeadings objectAtIndex:aSection]; 
} 
Смежные вопросы