2013-01-20 2 views
3

스토리 보드를 사용하여 UITableView에 헤더를 추가 할 수없는 것처럼 보입니다. 내가 게재되고 잘 작동하는 몇 가지 프로토 타입 셀을 가진 UITableView가 있습니다. 그런 다음이 프로토 타입 셀 위에 새 UIView를 드래그하고 레이블을 추가하여 내 테이블의 헤더로 사용했습니다 (섹션 헤더가 아님). UILabel 인 하나의 속성으로 UIView의 새 하위 클래스를 만들었습니다. 스토리 보드의 UIView 클래스는이 사용자 정의 UIView로 설정되고 UILabel의 참조 콘센트는 내 사용자 정의 UIView 클래스의 UILabel 속성으로 설정됩니다.Storyboard를 사용하여 UITableView에 사용자 정의 헤더 추가

DetailTableHeaderView *headerView = [[DetailTableHeaderView alloc] init]; 
headerView.entryNameLabel.text = @"TEST"; 
self.tableView.tableHeaderView = headerView; 
[self.tableView reloadData]; 

를하지만 내 응용 프로그램을 실행할 때 테이블 헤더는 전혀 나타나지 않습니다 :

그런 다음 내있는 UITableViewController의있는 viewDidLoad 메서드에서, 나는 다음과 같은 일을 해요. headerView.entryNameLabel의 text 속성도 "TEST"로 설정되어 있지 않은 것으로 나타났습니다.

내가 뭘 잘못하고 있니?

+0

스토리 보드는 테이블 뷰 헤더를로드하는 방법을 어떻게 알 수 있습니까? 뷰 컨트롤러를 초기화하는 중이지만 함께 진행할 뷰는 없습니다. – msgambel

+0

정확히 무슨 뜻인지 모르겠다. 스토리 보드에서 UILabel이 포함 된 UIView를 테이블 머리글로 추가했습니다. 그런 다음 'entryNameLabel'이라는 UILabel 속성이 포함 된 'DetailTableHeaderView'라는 사용자 지정 UIView 하위 클래스를 만들었습니다. 스토리 보드에서 헤더보기의 클래스를 'DetailTableHeaderView'로 설정하고 UILabel을 참조하는 콘센트를 연결했습니다. UILabel 'entryNameLabel'에 추가하십시오.그게 충분하지 않니? – el3ktro

+0

스토리 보드는 어떤 뷰를로드해야하는지 어떻게 알 수 있습니까? 당신은 어떤 단서를 수행하라는 말을하지 않았으며, 당신의 의견으로 판단 할 때, 나는 그 질문의 '보기'가 어떤 것에도 연결되지 않는다고 말하고 싶습니다. 단지 스토리 보드에 나타납니다. '[self.storyboard instantiateViewControllerWithIdentifier : @ "DetailTableHeaderView"];'당신의 UITableViewHeader를 설정하십시오. 'DetailTableHeaderView'가'UIViewController'인지 확인하십시오. – msgambel

답변

0

이 질문은 매우 오래되었지만 누군가에게 도움이되기를 바랍니다.

테이블 헤더 뷰를 처리하는 좋은 방법은 대리자 메서드를 사용하는 것입니다. tableView:viewForHeaderInSectiontableView:heightForHeaderInSection 대리자 메서드를 구현하십시오. tableView:viewForHeaderInSection 메서드에서 UIView를 반환하십시오. viewForHeaderInSection 방법 :

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
} 

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

또 다른 옵션은 헤더보기에 대한 프로토 타입 세포 (사용자 정의 세포)를 사용하고있는 tableView에 반환하는 것입니다. (나는이 일을 테스트하지 않은) 코드 아래 참조 :

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 

    HeaderView *headerView = [self.TableView dequeueReusableHeaderFooterViewWithIdentifier:@"tableHeader"]; 

    // Set Text 
    headerView.headerLabel.text = @"Some title"; 

    return headerView.contentView; 
} 

UPDATE 위는있는 tableView 작동

: viewForHeaderInSection : 방법. 다음 샘플 코드 :

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UITableViewCell *sectionHeader; 
    CustomSectionHeaderCell *sectionHeaderCell = [tableView dequeueReusableCellWithIdentifier:@"sectionHeaderCell"]; 

    // do stuff here 

    return sectionHeaderCell.contentView; 
} 
+4

질문에 답변하지 않았습니다. 이것은 그가 원하는 것이 아닙니다. –

1

오래된 질문하지만 디자인 부분에 대한 스토리 보드를 사용하여있는 tableview 헤더를 추가하는 방법을 아직 조금이 아닌 사소한 이후 참조 이유로 내 대답을 제공하고 있습니다.

  1. 스토리 보드의 tableview에 프로토 타입 셀을 추가하십시오.
  2. 오른쪽에있는 속성 검사기에서 프로토 타입 셀을 선택하면 식별자 (예 : headerViewCell)를 사용합니다.이 식별자는 사용하기 위해 참조하는 방식이므로 사용하십시오.

    - (void)viewDidLoad { 
        [super viewDidLoad]; 
        self.tableView.tableHeaderView = [self.tableView dequeueReusableCellWithIdentifier:@"headerViewCell"]; 
    } 
    
다음의 tableview를 처리하는 컨트롤러의
  • 이제 크기 관리자 탭을 클릭하고 그것을 행 높이를 제공 (이 거 야 될 헤더보기 높이) 이제 코드에서
  • ,