【发布时间】:2015-04-01 14:22:17
【问题描述】:
我正在调试表格视图,并且在我的 -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}>
我不知道 table 如何获得 -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 pt 的填充,但这很奇怪.
我想这是因为状态栏和导航栏。但是,如果硬编码创建我的偏移量和框架,它对我没有帮助。好像系统会自动形成我=)
【问题讨论】:
-
你在使用自动布局吗?如果是,那么您可以添加 TopSpacetoSuperview 的约束,然后检查
-
@parvind 我也使用过布局,但似乎仍然有那些 -64 pt by y。事实上,我只是在日志中看到它,视觉上一切看起来都很好。但是当我尝试滚动时,我需要比较我的内容偏移量接近 0,但内容偏移量的初始点为 -64,然后我应该根据 -64 pt 而不是 0 比较我的东西
-
请注意:本文顶部的两个日志是两个不同的
UITableViews——地址不同! -
@RileyAvron,天哪,是的,你是对的)我只是测试了几次,似乎复制了前一个。但无论如何,对于同一个实例,我有不同的偏移量。
标签: ios objective-c uitableview