ios - 剩余空间中的自动布局居中 View (以编程方式)

标签 ios iphone autolayout

如何以编程方式添加自动布局约束以使 View 在剩余空间中居中(参见下面的示例图片)?

enter image description here

目前,我在底部添加一个容器 View ,然后将 View 居中放置在容器 View 中,但我想知道是否有其他解决方案而不需要使用容器 View 。

最佳答案

您需要添加一个间隔 View 来执行此操作。

让我们从一些观点开始:

some views

我将设置粉红色 View 以占据 Root View 的前 70%。首先,我将它固定到 Root View 的所有四个边缘:

pink constraints

然后我将以两种方式编辑底部约束。首先,我确保第一项是粉红色 View ,其次我将乘数设置为 0.7。然后我更新粉红色 View 的框架:

pink constraints adjusted

接下来我将添加间隔 View 。我不希望间隔 View 在运行时可见,所以我将其隐藏。隐藏 View 仍然参与布局。在设置约束之前,我只是将 spacer 放在蓝色 View 的左侧:

spacer added

现在我将创建约束,使垫片从粉红色 View 的底部延伸到 Root View 的底部。宽度无关紧要,所以我将它固定在 super View 的左边缘并使其变薄:

spacer constraints

现在我已准备好设置蓝色 View 。首先我给它一个固定的尺寸:

blue size constraints

其次,我将在 Root View 中将其水平居中:

blue horizontal center

第三,我将其垂直中心固定到垫片的垂直中心:

blue vertical center

这就是我需要的所有约束。我将更新所有帧以检查:

update all frames

我可以在助理编辑器中使用预览来测试它:

previews

请注意,间隔 View 在预览中不可见,但仍参与布局。

关于ios - 剩余空间中的自动布局居中 View (以编程方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216524/

相关文章:

iphone - iPhone 上的推送通知与拉取通知

ios - 自动布局比例间距

ios - iOS 内部 UITableViewCell 中的动态 View

ios - 使用自动布局时优雅地隐藏和显示 View

iOS Swift 自定义 Cell NavigationController

ios - 了解 UIGraphicsGetCurrentContext()

iPhone线程加速应用程序的启动

ios - 如何将 UILabel 文本颜色更改回程序首次在 Xcode for iOS 7 中启动时的颜色?

iOS - 如何从未设置邮件客户端的设备通过电子邮件接收错误报告?

iphone - 在 iPhone 应用程序中重新加载表格 View ?