2015-04-01 66 views
5

我调试表视图,并在我的-viewDidLoad方法我有:UITableView的内容偏移-64pt问题

<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点,但这很奇怪。

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

+0

你在使用Autolayout吗?如果是的话,你可以添加TopSpacetoSuperview的约束,然后检查 – parvind 2015-04-01 14:49:44

+0

@parvind我已经使用布局,但似乎仍然有那些-64点。事实上,我只是看到它在日志中,视觉上看起来一切都很好。但是当我尝试滚动时,我需要比较我的内容偏移,当它接近0,但内容偏移-64的初始点,然后我应该比较我的东西基于-64点而不是0 – 2015-04-01 15:30:37

+0

只是一个说明:两个日志在这篇文章的顶部是*两个不同的'UITableView's * - 地址是不同的! – ravron 2015-04-01 16:47:13

回答

5

这是默认行为,考虑automaticallyAdjustsScrollViewInsets

缺省值是YES,这允许视图控制器响应于调整其 滚动视图插图 状态栏,导航栏和工具栏或选项卡栏消耗的屏幕区域。如果您自己想要管理滚动视图插入调整,例如 视图层次结构中存在多个滚动视图,则设置为NO。

...和其他相关的东西在iOS 7 UI Transition Guide