그룹화 된 테이블의 섹션 헤더를 사용자 정의하려고합니다. (이 스크린 샷에 만 상단에 표시된다) 나는 테이블의 첫 번째 섹션에 설정 한보기는 잘 보이지만, 이후의 섹션 헤더는 상단과 하단에서 잘립니다처럼 보이는 :그룹화 된 테이블의 헤더 설정보기 문제
봤는데 frame.size.origin
에 대해 다른 X 및 Y 값을 시도하지만 동일하게 보입니다. 이 코드는 내 코드입니다 :
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 1) {
UIView *wrapper = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 70)];
[wrapper setBackgroundColor:[UIColor clearColor]];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, self.tableView.frame.size.width, 20)];
label.text = NSLocalizedString(@"Section 2 Header", @"");
[label setFont:[UIFont boldSystemFontOfSize:15]];
[label setBackgroundColor:[UIColor clearColor]];
[wrapper addSubview:label];
return wrapper;
}
else
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 1)
return 70;
else
return 0;
}
모든 섹션 헤더에 대해 동일한 작업을 수행하며 첫 번째 메시지 만 올바르게 표시됩니다. 무엇이 잘못 될 수 있습니까? 이 문제와 관련하여 UILabel
의 텍스트와 글꼴 크기를 알고 나면 높이를 동적으로 알 수 있습니까? 아니면 항상 프레임 크기를 "추측 할 때"로 설정해야합니까? heightForHeaderInSection:
메서드에서 설정된 헤더의 높이에 대해서도 동일합니다.
감사합니다.
이 코드 섹션 (1) 이외의 부분에 대한 헤더 높이를 설정하지 않은
레이블을 설정 한 후에는 [[label sizeToFit];'를 호출하십시오. 이렇게하면 레이블의 프레임이 텍스트에 잘 맞는지 확인할 수 있습니다. 그 후에 라벨의 출처를 업데이트해야 할 수도 있습니다. – rmaddy
첫 번째 섹션에 대한 코드입니다. 모든 섹션을 필요로한다면'if (섹션 == 1)'메소드에서 삭제하거나'if (섹션 == 2)'등을 제공해야합니다. 도움이되기를 바랍니다. 또는'(CGFloat) tableView : (UITableView *) tableView heightForFooterInSection : (NSInteger) 섹션 {'을 호출하고 바닥 글의 높이를 삽입 할 수 있습니다. – user2545330
@ user2545330 아주 비슷하고 아주 긴 코드 스 니펫을 붙이기 싫어서 나머지 섹션의 코드는 여기에서 생략했습니다. – AppsDev