그룹화 된 스타일을 사용하는 테이블보기의 디자인이 iOS 7에서 크게 변경되었으므로 첫 번째 섹션 헤더를 숨기거나 제거하고 싶습니다. 지금까지 나는 그것을 달성하지 못했습니다.
약간 단순화 된 내 코드는 다음과 같습니다.
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return 0.0f;
return 32.0f;
}
- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0) {
UIView* view = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 640.0f, 0.0f)];
return view;
}
return nil;
}
- (NSString*) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return nil;
} else {
// return some string here ...
}
}
높이 0을 반환하면 다른 두 메서드는 섹션 인덱스 0으로 호출되지 않습니다. 그러나 빈 섹션 헤더는 여전히 기본 높이로 그려집니다. (iOS 6에서는 두 메서드가 호출되지만 보이는 결과는 동일합니다.)
다른 값을 반환하면 섹션 헤더는 지정된 높이를 가져옵니다.
0.01을 반환하면 거의 맞습니다. 그러나 시뮬레이터에서 "Color Misaligned Images"를 켜면 모든 테이블 뷰 셀이 표시됩니다 (논리적 인 결과 인 것 같습니다).
질문 UITableView : 빈 섹션에서 헤더 숨기기에 대한 답변 은 일부 사람들이 섹션 헤더를 숨기는 데 성공했음을 나타내는 것 같습니다. 그러나 일반 스타일 (그룹화 된 스타일 대신)에 적용될 수 있습니다.
지금까지 가장 좋은 절충안은 높이 0.5를 반환하여 내비게이션 막대 아래에 약간 더 두꺼운 선을 만드는 것입니다. 그러나 누군가가 첫 번째 섹션 헤더를 완전히 숨길 수있는 방법을 알고 있다면 감사하겠습니다.
최신 정보
caglar 의 분석 ( https://stackoverflow.com/a/19056823/413337 ) 에 따르면 테이블보기가 탐색 컨트롤러에 포함 된 경우에만 문제가 발생합니다.
section == 0
.