2011-02-17 5 views
0
self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain]; 

UINavigationController 및 UITabBarController가있을 때보기에서 적절한 크기를 얻으려면 어떻게해야합니까? 이를 극복하기 위해UINavigationController 및 UITableView 프레임 문제

내가해야 할 :

CGRect frame = self.view.frame; 
frame.origin.y -= [UIApplication sharedApplication].statusBarFrame.size.height; 
tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain]; 

나는 항상 수동으로 UINavigationController가 내부에 맞추기 위해 내보기/tableviews의 높이를 설정해야하고 정말 짜증나

이것은 다소 이상하게 보입니다. 왜 그것은 스큐 바 높이를 감정적으로 빼지 않았을까요? 이 스타일은 투명 스타일 막대가 아닌 기본 스타일입니다.

감사

UPDATE : 내가 잘 작동 self.view.frame에 프레임을 설정, 초기화 방법 후있는 tableView를 ALLOC합니다. 데이터를 가져다 주시겠습니까?

답변

1

UINavigationController가 아직로드 및 표시되지 않았기 때문에 init 메서드가 실행되기 전에 UINavigationController의 프레임을 설정하면 작동하지 않습니다. 프레임은 컨트롤러와 뷰가로드 된 후에 만 ​​설정됩니다.

UINavigationController의 viewDidLoad 메서드에서 테이블 (및 모든 비슷한 초기화)을 설정해야합니다. 그렇게하면이 종류의 문제를 볼 수 없습니다.

+0

뷰가로드 된 후 setNeedsLayout을 호출하면 문제가 해결 될 수 있습니다. –