ios - 使用 Interface Builder/Storyboards 中的自动布局创建网格类型布局

标签 ios xcode swift interface-builder uistoryboard

我正在尝试使用 Interface Builder/Storyboards 创建网格类型布局。我使用 UIImageView 作为背景图片,并将 UIButtons 放置在我想要交互的图像区域上。无论我尝试什么限制,我似乎都无法将按钮放置到正确的位置。我附上了 Xcode 6 的屏幕截图,并提供了 GitHub 上该项目的链接。非常感谢任何可以提供一些见解的人。

编辑

在听取了 Matt 的建议后,我使用图像作为实际按钮创建了一个布局。它工作得很好,但我似乎可以让按钮正确地相互约束。我附上了一些我现在得到的图片。如果有人知道发生了什么事那就太好了! GitHub 存储库也已更新。

作为注释,我故意将黑条留在底部。

我在 iPhone 4/4s 上看到的 View

最佳答案

遵循水平+垂直边到边定义原则

  1. 每个对象都必须具有边到边约束。即您必须能够为任何对象虚拟绘制一条约束线来定义其边缘。
  2. 水平和垂直方向都必须遵守规则 #1

作为示例,假设您不希望调整按钮大小:

  • 为每个按钮选择一个固有宽度
  • 将最左边按钮的最左边距与容器对齐
  • 为每个按钮添加一个水平间距约束到左边的按钮
  • 为容器分配最右侧按钮的最右侧边距
  • 选择适当的优先级

垂直重复。

关于ios - 使用 Interface Builder/Storyboards 中的自动布局创建网格类型布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473822/

相关文章:

javascript - 检测移动到 Mobile Safari 中的新选项卡

html - iOS Safari Z-index 不工作

iphone - 以编程方式设置 UIBarButtonItem 的标识符

Xcode - 找不到文件但构建成功

swift - “inout String”无法转换为 'UnsafePointer<String>'

ios - 消息发送成功但未出现在 ios 开发模式下的设备中

swift - 快速本地化特定语言

ios - 在单个应用程序中使用多个 Firebase 数据库 - Swift

Xcode 缩进键绑定(bind)

c - 将应用程序预处理器信息转发到静态库