14

我正在使用故事板和自动布局创建 iOS 应用程序,以便它在 iPhone4 和 iPhone5 上都能正常工作。下面是我使用故事板创建的视图的屏幕截图。

在此处输入图像描述

在上图中,我想将滚动视图保持在超级视图的前沿和右表视图的中间。我不希望滚动视图在 iPhone5 中增加其宽度。我尝试了不同的约束组合,但我无法实现。

有人可以建议我为滚动视图设置哪些约束,以便它位于中心。

4

2 回答 2

46

如何在情节提要上居中视图

此答案已针对 Xcode 8 进行了更新。

这个答案适用于那些只是在一般搜索如何使用情节提要使事物居中并且不了解约束的人。

我假设您使用的是故事板(不是 XIB 文件)和自动布局。这是当今的默认设置,因此如果您不知道这意味着什么,请不要担心。但是,如果要检查,可以单击项目导航器中的 Main.storyboard,然后单击文件检查器。您可以确保选中使用自动布局:

在此处输入图像描述

在情节提要上选择您的按钮(或您想要居中的任何视图)。然后点击右下角的对齐按钮。选择“在容器中水平”和“在容器中垂直”。单击“添加 2 个约束”。

在此处输入图像描述

如果它还没有完全居中,您可能需要再做一件事。单击对齐按钮左侧两处的“更新帧”按钮。您的视图现在应该以故事板为中心。

在此处输入图像描述

更重要的是,现在当你运行你的应用程序时,无论你使用什么设备尺寸,它都应该居中。

我最初是从创建用户界面 - 自动布局中学到的。基本思想还是一样的,但是现在 Xcode 中的 UI 安排已经发生了一些变化。

也可以看看

于 2015-02-11T03:51:31.453 回答
6

您需要通过向屏幕添加一个附加视图来完成此操作。

此刻你有...

- UIView (main view)
    |
    | - scrollView
    | - tableView

你应该把滚动视图放在另一个像这样的视图中......

- UIView (main view)
    |
    | - UIView (spacer View)
    |    | - scrollView
    |
    | - tableView

现在你可以做的是有这些限制......

spacer view leading edge constraint to super view = 0
spacer view trailing edge to table view leading edge = 0
table view width = (whatever the width is)
table view trailing edge to super view = 0

这将布置 spacer view 和 table view 以便 spacer view 增长。

现在您需要添加...

scroll view width = x
scroll view height = y
scroll view centered vertically in super view
scroll view centered horizontally in super view.

现在,因为滚动视图的超级视图是间隔视图,所以它将始终居中在表格视图和空间的其余部分之间。

于 2013-07-29T07:41:42.470 回答