2014-02-13 1 views
0

나는 다음 스크린 샷과 같은 세 가지의 TableView와의 ViewController이는 :jQuery과 잘못된 레이아웃

CGFloat x, y, w, h; 

x = 10.0f; 
y = 154.0f; 
w = 220.0f; 
h = 600.0f; 

self.usersTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStylePlain]; 
self.usersTableView.delegate = self; 
self.usersTableView.dataSource = self; 
[self.view addSubview:self.usersTableView]; 

x = CGRectGetMaxX(self.usersTableView.frame) + 10.0f; 

self.groupsTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStylePlain]; 
self.groupsTableView.delegate = self; 
self.groupsTableView.dataSource = self; 
[self.view addSubview:self.groupsTableView]; 

x = CGRectGetMaxX(self.groupsTableView.frame) + 10.0f; 

self.officesTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, w, h) style:UITableViewStylePlain]; 
self.officesTableView.delegate = self; 
self.officesTableView.dataSource = self; 
[self.view addSubview:self.officesTableView]; 

첫 번째 표는 다른 내용이 :

Page screenshot

이 세 가지의 tableview의 선언 코드 형세. 세 테이블의 순서를 변경하려고 시도했지만 첫 번째 테이블은 항상 잘못된 레이아웃을 보여줍니다 (프라이버시를 위해 행의 내용을 숨김).

편집 여기 데이터 소스 방법 :

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    if (tableView == self.usersTableView) 
    { 
     return self.usersDataSource.count; 
    } 
    else if (tableView == self.groupsTableView) 
    { 
     return self.groupsDataSource.count; 
    } 
    else if (tableView == self.officesTableView) 
    { 
     return self.officesDataSource.count; 
    } 

    return 0; 
} 

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (tableView == self.usersTableView) 
    { 
     static NSString *CellIdentifier = @"Cell_User"; 
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

     if (cell == nil) 
     { 
      cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
      cell.textLabel.font = [UIFont systemFontOfSize:13.0f]; 
     } 

     User * aUser = self.usersDataSource[indexPath.row]; 

     cell.textLabel.text = aUser.Name; 

     return cell; 
    } 
    else if (tableView == self.groupsTableView) 
    { 
     static NSString *CellIdentifier = @"Cell_Group"; 
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

     if (cell == nil) 
     { 
      cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
      cell.textLabel.font = [UIFont systemFontOfSize:13.0f]; 
     } 

     Group * aGroup = self.groupsDataSource[indexPath.row]; 

     cell.textLabel.text = aGroup.Name; 

     return cell; 
    } 
    else if (tableView == self.officesTableView) 
    { 
     static NSString *CellIdentifier = @"Cell_Office"; 
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

     if (cell == nil) 
     { 
      cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
      cell.textLabel.font = [UIFont systemFontOfSize:13.0f]; 
     } 

     Office * anOffice = self.officesDataSource[indexPath.row]; 

     cell.textLabel.text = anOffice.Name; 

     return cell; 
    } 

    return nil; 
} 

대단히 감사합니다.

+0

데이터 원본 메서드의 코드를 게시 할 수 있습니까? 동일한 테이블 행 개수와 동일한 셀을 반환합니까? 난 0 행을 반환하여 코드를 테스트하고 그들은 모두 나를 위해 똑같아 보여 - 그래서 거기에 문제가있을 수 있습니다 생각합니다 – GracelessROB

+0

좋아, 편집을 참조하십시오! – Fry

답변

2

iOS 7에서 UIViewController는 새로운 반투명 UINavigationBar를 설명하기 위해 뷰 계층에서 찾을 수있는 첫 번째 UIScrollView를 자동으로 삽입합니다.

이 동작을 바꾸려면 'init'메서드에서 UIViewController의 'automaticallyAdjustsScrollViewInsets'속성을 'NO'로 변경하십시오.

self.automaticallyAdjustsScrollViewInsets = NO; 

더 많은 정보는 여기에서 찾을 수 있습니다 : 그 문제가 해결되지 않으면 https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/AppearanceCustomization.html

, 당신의 UITableViewDataSource에 문제가 있어야합니다.

+0

고맙습니다! – Fry