¿Por qué no aparece el encabezado de mi primera sección en la tabla?

No puedo entender por qué el encabezado de la primera sección no se muestra. El segundo y el tercer espectáculo están bien. Sospecho que es por la barra de búsqueda.

He intentado compensar toda la tabla como en UISearchBar cubierto por encabezado de sección, pero no me di count de que estaba compensado.

jerarquía de elementos

captura de pantalla

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { // create the parent view that will hold header Label UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0,-60,300,60)]; // create the label object UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectZero]; headerLabel.frame = CGRectMake(0,0,self.view.frame.size.width,60); UIColor* mainColor = [UIColor colorWithRed:47.0/255 green:168.0/255 blue:228.0/255 alpha:1.0f]; headerLabel.backgroundColor = mainColor; headerLabel.font = [UIFont boldSystemFontOfSize:18]; headerLabel.textAlignment = UITextAlignmentCenter; if(section == 0) headerLabel.text = @"Friends"; if(section == 1) headerLabel.text = @"Second Section Header"; if(section == 2) headerLabel.text = @"Third Section Header"; headerLabel.textColor = [UIColor whiteColor]; [customView addSubview:headerLabel]; return customView; } - (void) hideSearchBar { self.feedTableView.contentOffset = CGPointMake( 0, self.searchBar.frame.size.height ); } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 3; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { //Number of rows it should expect should be based on the section NSDictionary *dictionary = [_imageDataArray objectAtIndex:section]; NSArray *array = [dictionary objectForKey:@"data"]; return [array count]; } 

No se estaba mostrando porque no había implementado heightForHeaderInSection
Más detalles aquí: en iOS 7 la sección viewForHeaderInSection está comenzando desde 1 no desde 0

Tienes un error en tu código. Su encabezado está allí, pero se establece en un y = -60 con una altura de 60.

Reemplazar:

 // create the parent view that will hold header Label UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0,-60,300,60)]; 

con este

 // create the parent view that will hold header Label UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,300,60)]; 

Aquí está la captura de pantalla aquí

Sección 0

Sección 0 y 1

Espero que ayude.