Я предполагаю, что вы используете заголовки таблиц по умолчанию с некоторой прозрачностью / полупрозрачностью (аналогично приложению контактов), поэтому нижняя часть первого ряда показывает их там.
Посмотрите документацию по методу UITableViewDelegate tableView: viewForHeaderInSection , а затем вы можете реализовать этот метод в делегате вашего tableView. Отправьте ему представление с непрозрачным (или прозрачным) фоном, и это должно предотвратить просвечивание верхней строки.
Чтобы начать, я бы вернул UILabel нестандартного размера напрямую с чистым белым фоном и убедился, что он работает как надо (потому что я не проверял это:)
// you'd probably need to fill in the frame sizes yourself
// so try something other than CGRectZero at first.
// for example (10,2,320,30) to start, then go from there
#define X 10
#define Y 2
#define WIDTH 320
#define HEIGHT 30
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
UILabel *sectionHeader = [[UILabel alloc] initWithFrame:CGRectMake(X,Y,WIDTH,HEIGHT)];
sectionHeader.text = [NSString stringWithFormat:@"Section %d",section];
sectionHeader.background = [UIColor whiteColor];
return [sectionHeader autorelease];
}
Предполагая, что это работает и выглядит как прогресс, вы, вероятно, захотите составить собственное представление, возвращающее это в качестве следующего шага.