2013-02-06 2 views
0

UITableView의 섹션 헤더에 대한 사용자 정의 헤더보기를 사용하고 있습니다. 여기에 데이터 소스 방법의 커플 : 내 헤더 뷰가 90 점 높은 것으로 예상되는 것을 알고사용자 정의 UITableView 섹션 헤더, 이상한 동작

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    SBTableViewHeader *header = [[SBTableViewHeader alloc] init]; 
    header.titleLabel.text = self.earnings; 
    header.subtitleLabel.text = @"You have earned $23 today."; 
    return header; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 90; 
} 

, 대신 내 헤더보기 90 점 PLUS 공간의 또 다른 90 빈 포인트를 얻고있는 세포의 일부를 덮는다. 그것은 총 180이며 Photoshop에서 측정했습니다.

도움말!

몇 가지 추가 정보 : SBTableViewHeader는 UIView 하위 클래스이며 .xib를 사용합니다. 특별한 것은 없습니다. File 's Owner가 SBTableViewHeader로 설정되어 있고 다른 모든 것이 올바르게 연결되어있는 것처럼 보입니다.

+0

xib 파일에서보기의 높이를 확인하십시오. 또한 90 점이어야합니다. – Levi

+1

'[[SBTableViewHeader alloc] init]'이 height = 90 인 뷰를 리턴했는지 확인 했습니까? –

+0

나는 그것을 확인했다, 그것은 90이다. –

답변

1

는 (코멘트 :

에서 올바른 크기의 뷰를 작성 initWithFrame 대신 init을 사용해야합니다.

heightForHeaderInSection: (마찬가지로 heightForRowAtIndexPath)에만 헤더와 셀 위치를 계산하는 테이블 뷰에 의해 사용되는, 스크롤 표시 등

데이터 소스 (또는 대리인) 방식의 크기는 셀/뷰를 반환해야 그렇지 않으면 다른 항목과 겹칩니다.

관련 문제