2012-04-24 3 views
1

안녕하세요, iOS 프로그래밍을 공부하고 있습니다.인터페이스 작성기를 사용하여 tableView에서 뷰를 추가하는 방법

나는 인터페이스 빌더를 사용하여 궁금해합니다.

내가는 tableViewController 또한이 .xib 파일이

지금 내가 인터페이스 빌더에서 jQuery과를 볼 수 있도록합니다.

단추, 레이블 등이 포함 된 myView라는보기를 추가해야합니다.

myview에 tableview의 머리글과 같이 tableView의 영역을 설정해야합니다.

는 그래서는 MYVIEW을, 등 버튼, 라벨,

를 추가하고 난 jQuery과에 해당보기를 끕니다. 좋아, 괜찮아.

myView가 인터페이스 빌더의 UITableView 맨 위에 설정되어있는 것을 볼 수 있습니다.

하지만 프로그램을 실행하면 myView가 표시되지 않습니다.

물론 IBOutlet을 사용하여 연결하고 속성을 선언하고 합성하십시오.

는하지만 난 NSLog 내 프롬프트 영역을 인쇄되는 것을 이해할 수없는이

if(self.myView == nil) 
    NSLog(@"omg it's nil!!!"); 

같은 NSLog를 사용합니다.

나는 인터페이스 작성기에서 해당보기를 만들기 때문에!

테이블 뷰는 물론 셀을 볼 수 있습니다.

myView가 표시되지 않는 이유는 무엇입니까 ??

어떻게 해결할 수 있습니까 ??

나는 인터페이스 빌더를 사용하여 어떻게 문제를 해결할 수 있는지 알고 싶다.

나에게 도움을 주시기 바랍니다

답변

2

이 인터페이스 빌더를 사용하여 가능하다면, 나는 보통 수동으로 뷰를 생성하고 그래서 같이 viewWillAppear 방법에있는 tableview 헤더에 추가 확실하지 :

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, 60)]; 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 10,self.tableView.bounds.size.width, 50)]; 
    label.text = [person getFullName]; 
    label.textAlignment = UITextAlignmentCenter; 
    label.backgroundColor = [UIColor clearColor]; 
    label.font = [UIFont boldSystemFontOfSize:25]; 
    label.shadowColor = [UIColor whiteColor]; 
    label.shadowOffset = CGSizeMake(0,1); 
    [headerView addSubview:label]; 

    self.tableView.tableHeaderView = headerView; 

더 간단한 방법은 별도의 nib 파일에 뷰를 생성하고 다음과 같이 테이블 뷰를로드 할 때 테이블 헤더에로드하는 것입니다.

UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"MYXIBFILEHERE" bundle:nil]; 
self.tableView.tableHeaderView = aViewController.view; 
2

내 경험 nce와 XCode 4.3 :

같은 슈퍼 UIView에 먼저 UITableView와 UIView를 놓아야합니다. 그런 다음 UIView를 UITableView의 맨 위로 드래그하면 XCode가보기를 바닥 글로 삽입하는 옵션을 강조 표시합니다.

일단 완료되면 superview에서 UITableView를 분리하고 삭제할 수 있습니다.다음과 같이

0

나는 일이를 얻을 수 있었던 유일한 방법은 다음과 같습니다

  1. 새로운 nib 파일이 프로젝트에 추가합니다. 처럼 nib 파일에서보기를 배치하여 테이블 바닥 글/헤더를 보입니다.
  2. nib의 파일 소유자 클래스를 UITableViewController 클래스로 설정하십시오. 따라서이 nib의 뷰를 UITableViewController 클래스의 IBOutlet에 연결할 수 있습니다.
  3. 새로운 펜촉의 뷰를 가리 키도록 UIView IBOutlet을 UITableViewController에 설정하십시오. 당신의있는 UITableViewController 클래스에서
  4. , 있는 viewDidLoad에서 같은 것을 할 :

(. 분명히 코드는 번호 매기기 목록 바로 다음의 경우 제대로 포맷되지 않습니다)

[[NSBundle mainBundle] loadNibNamed:@"statsFooterView" owner:self options:nil]; 
self.tableView.tableFooterView = myFooterView; 
관련 문제