2014-02-12 2 views
0

두 개의 UITableView 인스턴스가 있습니다. 서브 뷰로 UINavigationController에있는 UIViewController의 루트보기에 추가하면 이라는 새로운 속성 automaticallyAdjustsScrollViewInsets으로 인해이 -64 인 contentOffset이 자동으로 추가되었습니다. 다른 하나는 0입니다. 첫 번째는 조정될 것입니다.UIViewController의 뷰에 UITableView의 인스턴스 추가, 그 중 하나만 조정했습니다.

저는 Apple의 문서 및 인터넷에서 조사한 바 있습니다. 아직도 단서를 찾을 수 없습니다.

다음은 테이블 뷰를 추가하는 코드입니다. 내가 원하는 원인 addSubview

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // the table views are init in their getter methods 
    // both frames are equal to root view of this view controller 

    [self.view addSubview:self.firstTableView]; 
    [self.view addSubview:self.secondTableView]; // this one will not have contentOffset 
} 

, '둘 다 contentOffset 있습니다. 그러나 심지어 contentOffsetsecondTableView으로 수동으로 설정하려고 시도했는데보기 컨트롤러가 표시된 후 이 0으로 다시 변경되었습니다. 중단 점은 viewDidAppear:에 있습니다.

기타 : Xcode 5.0.2, iOS 7 SDK, ARC, Storyboards 및 xibs.

아무도 나에게 도움이된다면 고마워 할 것입니다.

답변

0

스토리 보드를 사용하는 경우이 문제를 해결하는 것이 더 쉬워집니다. autolayout이 명시 적으로 요청한 적이 없더라도 자동으로 contentOffset 조정을하는 것처럼 들립니다. See this answer 하나의 UITableView와 매우 유사한 (또는 정확히 같은?) 문제는 다른 동일한 UITableView와 다른 것 같습니다. Xcode는 인스턴스화 된 UITableView 객체 중 하나가 최상위 UIView라고 가정합니다.

+0

질문은 나의 것과 매우 비슷합니다. 그러나'contentOffset' 패딩은 autolayout이 아닌'automaticallyAdjustsScrollViewInsets' 속성 설정에 의해 이루어졌습니다. 그래서 Xcode는 나에게 첫 번째 UIScrollView와 같은 인스턴스만을 처리 할 것인가? – vc7

관련 문제