UITableView内容偏移-64pt问题

Mat*_*der 5 objective-c uitableview ios

我正在调试表视图,在我的-viewDidLoad方法中我有:

<UITableView: 0x7b394600; frame = (0 0; 1024 768); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7983d2f0>; layer = <CALayer: 0x79836ca0>; contentOffset: {0, 0}>
Run Code Online (Sandbox Code Playgroud)

但是当我在-viewDidAppear方法中检查框架和内容偏移时:

<UITableView: 0x7ab79c00; frame = (0 0; 1024 768); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7998f700>; layer = <CALayer: 0x7998f560>; contentOffset: {0, -64}>
Run Code Online (Sandbox Code Playgroud)

我不知道表格如何得到-64的偏移量.

只有一系列方法视图确实加载,然后视图确实出现但内容偏移对我来说神奇地改变了.

可能是什么原因?

这是我的viewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];

    _theTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

    _theTableView.dataSource = self;
    _theTableView.delegate = self;

    [self.view addSubview:_theTableView];

    _theTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

    self.title = @"File Manager";
}
Run Code Online (Sandbox Code Playgroud)

我有导航栏,但奇怪的是我看到我的桌子应该没有移动.看起来很完美我看到顶部单元格,当我滚动到底部时,我看到最后一个单元格.甚至指示器告诉我内容偏移为0.如果我强制设置内容偏移{0,0},那么看起来第一个单元格在导航栏下方并且垂直指示符不是从顶部开始但是有一些填充大约64磅,但是它很奇怪.

我想这是因为状态栏和导航栏.但如果硬编码创建我的偏移和框架,它对我没有帮助.好像系统会自动形成我=)

Nik*_*kin 5

这是默认行为,请查看automaticallyAdjustsScrollViewInsets:

默认值为YES,允许视图控制器调整其滚动视图插入以响应状态栏,导航栏和工具栏或标签栏消耗的屏幕区域.如果要自行管理滚动视图插入调整,则设置为NO,例如视图层次结构中有多个滚动视图时.

...以及iOS 7 UI Transition Guide中的其他相关内容.