iOS 8 自动布局 - 动态调整 4 个方形视图的大小

Posted

技术标签:

【中文标题】iOS 8 自动布局 - 动态调整 4 个方形视图的大小【英文标题】:iOS 8 Autolayout - Dynamically Resizing 4 Square Views 【发布时间】:2015-03-14 04:56:44 【问题描述】:

我有一个包含方形子视图(灰色)的视图。然后这个正方形子视图包含四个较小的正方形(蓝色):

每个方块都固定在父视图的顶部或底部,以及父视图的左侧或右侧。例如,左上角的正方形有一个约束将前导空间固定到父视图,另一个约束将顶部空间固定到父视图。同样,右下角有约束,将底部和尾随空格固定到超级视图。

我很难实现约束,这将导致正方形根据屏幕大小调整大小。我已经在方块之间设置了水平和垂直间距限制,但这会导致警告说需要降低其中一个方块的内容压缩优先级。当它缩小时,那个正方形会变得很小,因为另一个正方形占据了所有空间。

我只希望每个正方形的大小相等,并通过自动布局调整大小以适应屏幕。

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

选择所有正方形并对它们应用等宽和等高约束。然后,对于其中一个正方形,应用纵横比约束以保持其宽度和高度彼此相等。最后,在任意两个相邻方格之间添加一个空间约束。

将每个正方形固定到超级视图的角上的约束就足够了。

【讨论】:

【参考方案2】:

除了图像中的约束之外,我在相邻方块之间添加了四个值为 20 的空间约束,并在右侧对齐两个方块的水平中心。您可以参考下图。

【讨论】:

以上是关于iOS 8 自动布局 - 动态调整 4 个方形视图的大小的主要内容,如果未能解决你的问题,请参考以下文章

自动布局 - 中心有 5 个按钮

iOS 8 Today Widget 使用自动布局来适应 UITableView 的高度

iOS 故事板 - 自动布局不会调整子视图的大小和位置

使用自动布局扩展方形视图以填充矩形超级视图

UIView 使用约束自动布局居中和调整大小

无法正确地自动调整自动布局和堆栈视图(Swift 3、Xcode 8)