1

我正在尝试在我的应用程序中切换到自动布局,但我的UITabBarController. 基本上,我的主屏幕上有两个按钮,我希望它们具有相同的大小,一个距离屏幕顶部 50 像素,一个距离底部 50 像素。

问题是当我这样做时:

NSArray* verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-50-
    [buttonOne(150)]" options:0 metrics:nil 
    views:NSDictionaryOfVariableBindings(buttonOne)];
[self.view addConstraints:verticalConstraints];

verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:
    [buttonTwo(==buttonOne)]-50-|" options:0 metrics:nil 
    views:NSDictionaryOfVariableBindings(buttonOne, buttonTwo)];
[self.view addConstraints:verticalConstraints];

底部按钮距离视图底部 50 像素,即 568 点高,此时的高度self.view应为屏幕高度减去标签栏高度(导航栏隐藏)。这个填充的大部分被标签栏的高度吃掉了。

我的问题是:为什么我的视图控制器的视图没有调整大小,因此它不会将我的标签栏的空间算作其高度的一部分?

4

2 回答 2

0

建议是确保将约束添加到容器而不是顶级视图。IE。在顶层视图下添加一个视图并向其中添加组件。我的猜测是顶层视图中有一些自动调整大小的约束

于 2013-09-13T07:23:57.267 回答
0

我认为铁路游行是正确的。我使用自动布局实现了 UITabBar/UITabBarController 替换,它被称为GGTabBar。我还写了一篇非常全面的博客文章,介绍了我是如何解决这个问题的,以及我是如何使用自动布局来解决它的。

于 2014-10-22T17:27:52.887 回答