将 UITableView 的实例添加到 UIViewController 的视图中,只调整了其中一个实例

Adding UITableView's instances to the view of UIViewController, only one of them was adjusted

提问人:vc7 提问时间:2/12/2014 更新时间:2/13/2014 访问量:74

问:

我有两个实例。当我将它们作为子视图添加到根视图中时,由于新属性,我得到其中一个自动添加为 -64,但另一个是 0。只有第一个会被调整。UITableViewUIViewControllerUINavigationControllercontentOffsetyautomaticallyAdjustsScrollViewInsets

我从苹果的文档和互联网上做了一些研究。还是找不到任何线索。

这是我添加表视图的代码。

- (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
}

在之后,'因为我希望他们俩都有.但即使我尝试手动设置为,不知何故,在显示视图控制器后它又改回了 0,断点在屏幕上。addSubviewcontentOffsetcontentOffsetsecondTableViewviewDidAppear:

其他:Xcode 5.0.2、iOS 7 SDK、ARC,既不是 Storyboard 也不是 xibs。

如果有人能帮助我,我将不胜感激。

iOS UITableView UIViewController的

评论


答:

0赞 Mike S 2/13/2014 #1

如果您使用情节提要,这个问题会更容易解决。听起来 autolayout 会自动为您进行 contentOffset 调整,尽管从未明确要求它这样做。请参阅此答案,了解一个非常相似(或完全相同?)的问题,其中一个 UITableView 似乎与另一个相同的 UITableView 不同。Xcode 可能假定实例化的 UITableView 对象之一是最顶层的 UIView。

评论

0赞 vc7 2/13/2014
这个问题与我的问题非常相似。但是填充是通过属性设置而不是自动布局完成的。所以 Xcode 只会为我处理第一个类似 UIScrollView 的实例?contentOffsetautomaticallyAdjustsScrollViewInsets