[iphone] UITableView에서 섹션 헤더의 기본 높이

UITableView에서 첫 번째 헤더의 높이를 설정하고 싶습니다. 다른 헤더의 경우 기본 높이로 유지하고 싶습니다. 아래 코드에서 “someDefaultHeight”대신 어떤 값 / 상수를 입력 할 수 있습니까?

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return someDefaultHeight;
}

감사



답변

iOS 5.0 이상에서는 대부분의 대리자 메서드에서 UITableViewAutomaticDimension을 반환 할 수 있습니다. 설명서 페이지 하단에 있습니다.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return UITableViewAutomaticDimension;
}


답변

내 응용 프로그램의 기본값을 확인하면 그룹 테이블의 경우 기본값은 22이고 그룹화되지 않은 테이블의 경우 기본값은 10입니다.

tableview에서 sectionHeaderHeight 속성의 값을 확인하면 알려줍니다.


답변

실제로 트릭을 수행 🙂

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == 0)
        return kFirstSectionHeaderHeight;
    return [self sectionHeaderHeight];
}


답변

완성도를 높이기 위해 : iOS7 +에서는 그룹화 된 스타일 섹션 헤더의 높이 55.5가 첫 번째 및 38다음 헤더에 대한 높이입니다 . (DCIntrospect로 측정)


답변

신속한 4.2의 경우 UITableView.automaticDimension을 반환해야합니다.


답변

여기에 정답이 무엇인지 확실하지 않지만 iOS 5에서 그룹화 된 테이블보기의 경우 10 또는 22가 올바른 높이로 나타나지 않습니다. 질문에 따라 44를 사용 하고 있으며 대략적으로 나타납니다. 정확한 높이.


답변

기본 높이를 얻으려면 super처리하십시오.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return [super tableView:tableView heightForHeaderInSection:section];
}