2013-07-31 3 views
0

그룹화 된 테이블의 섹션 헤더를 사용자 정의하려고합니다. (이 스크린 샷에 만 상단에 표시된다) 나는 테이블의 첫 번째 섹션에 설정 한보기는 잘 보이지만, 이후의 섹션 헤더는 상단과 하단에서 잘립니다처럼 보이는 :그룹화 된 테이블의 헤더 설정보기 문제

iPhone_groupedTable_header

봤는데 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) 이외의 부분에 대한 헤더 높이를 설정하지 않은
+0

레이블을 설정 한 후에는 [[label sizeToFit];'를 호출하십시오. 이렇게하면 레이블의 프레임이 텍스트에 잘 맞는지 확인할 수 있습니다. 그 후에 라벨의 출처를 업데이트해야 할 수도 있습니다. – rmaddy

+0

첫 번째 섹션에 대한 코드입니다. 모든 섹션을 필요로한다면'if (섹션 == 1)'메소드에서 삭제하거나'if (섹션 == 2)'등을 제공해야합니다. 도움이되기를 바랍니다. 또는'(CGFloat) tableView : (UITableView *) tableView heightForFooterInSection : (NSInteger) 섹션 {'을 호출하고 바닥 글의 높이를 삽입 할 수 있습니다. – user2545330

+0

@ user2545330 아주 비슷하고 아주 긴 코드 스 니펫을 붙이기 싫어서 나머지 섹션의 코드는 여기에서 생략했습니다. – AppsDev

답변

0

, 당신은 경우 (섹션 == 1) 조건을 제거하고 각 섹션에 대해 공통의 높이를 제공하고 확인해야합니다

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    if (section == 1) 
      return 70; 
    else 
      return 0; 
} 

감사합니다, Mittal.