iOS 自动布局 : Issues with 2 variable sized boxes and 1 fixed sized box

标签 ios xcode interface-builder autolayout

我现在已经为这个问题苦苦思索了几个小时,并认为是时候问问其他人了。

我有 2 个必须具有相同大小的 View ,在这两个 View 中,有 2 个大小可变的框(下图中的绿色和蓝色)和一个固定大小的框(粉红色) .

这是一个示例图像:

Scenario 1

绿色和粉色框设置在顶部,蓝色框 float 在它们下方。蓝色框与其他两个框中最低的框的距离不得低于 15pt。这意味着,如果绿色框变小(如下图所示),则蓝色框应与粉色框保持 15pt。

Scenario 2

最后,由于单元格的高度是固定的,因此如果蓝色框变小,那么它应该保留在其他框上,但在其下方留出空间以填充 View 的其余部分(因为它必须与蓝色框一样大)查看它旁边的 View ),正如我尝试在这里想象的那样:

Scenario 3

这里的关键点是我们正在研究两者中较小的 View 。 (绿色和蓝色框都是带有文本的标签,必须位于框的顶部。)

我想出的最佳解决方案是添加:

  • 绿色.bottom >=15 蓝色.top
  • 粉色.bottom >=15 蓝色.top
  • blue.bottom >=15 superview.bottom

但我在它们之间得到了“不平等约束模糊性”,因为不平等还“不够好”。

最佳答案

您需要在蓝色 View 与绿色和粉色 View 之间添加两个约束。应该是,

green.bottom == 15 blue.top 优先级 900

粉色.底部== 15 蓝色.顶部优先级900

您的 >= 约束的默认优先级为 1000,这意味着它们是必需的。这将确保两个 View 与蓝色 View 的距离都不超过 15 个点。以较低优先级添加这些新的相等约束意味着系统将尝试满足它们,但并非必须这样做。这将导致系统满足这两个相等约束中的任意一个,而不会违反 >= 约束。

我不太确定 View 底部(从蓝色 View )需要什么约束,因为我不确定您想要它的大小。

关于iOS 自动布局 : Issues with 2 variable sized boxes and 1 fixed sized box,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161300/

相关文章:

xcode - 在 Interface Builder 中显示/隐藏文档大纲的键盘快捷键

xcode - 界面构建器中的颜色变量

iphone - 在选项卡栏应用程序中使用导航 Controller 。

ios - UILabel 中的可点击用户名和主题标签(不是 UIWebView!)

ios - Xcode 10 build 10A255 需要清理构建文件夹以进行所有更改

iphone - 在 UITableView 中加载 plist

ios - TableView 部分分隔线

cocoa - 如何在 Cocoa/IB 中实现类似于 Mail/iTunes/Finder/etc 的侧边栏?

ios - 将图像限制在 Xcode Storyboard上的屏幕边缘

ios - If 语句会导致 iOS 设备崩溃,但不会导致模拟器崩溃