UITableView内容偏移-64pt问题

时间:2015-04-01 14:22:17

标签: ios objective-c uitableview

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

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

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

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

我不知道表格如何得到-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";
}

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

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

1 个答案:

答案 0 :(得分:5)

这是默认行为,请查看automaticallyAdjustsScrollViewInsets

  

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

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