ios - 如何防止 Interface Builder 在 subview 内容周围添加 20pt 填充?

标签 ios xcode interface-builder

IB, stop adding that padding!

看到 20px(更确切地说是 pt)的填充了吗? IB 在两种情况下会自动执行此操作,当您点击 Cmd + = 以自动调整 super View 以适合 subview 内容时,以及当您选择 Editor > Embed In > UIView、UIScrollView etc.

后者特别烦人,因为它需要一个步骤的时间节省,并将其变成一个重新定位的麻烦,只比手动做稍微好一点,当你将它们拖到一个层次结构中的不同位置。

还有 Embed In 选项,IB 将新的 superview 包装器的位置移动了 (-20, -20) 就好像这样会更好...

我是不是漏掉了什么?有没有办法防止这种填充?

最佳答案

我终于想出了如何去做,与这个答案相关:

Group views in Interface Builder

  1. 选择您希望嵌入的所有 View (通过按住 Shift 或命令单击它们)。
  2. 编辑器->嵌入->查看。这将创建一个带有多余 20 像素填充的 View “A”。
  3. 使用您想要的实际边界创建一个新 View “B”(因此所有边都比“A”小 20 像素)。
  4. 将旧容器 View “A”拖到新容器 View “B”中(Xcode 会在“B”中为您将其居中,并保留所有子元素的当前位置)。
  5. 点击旧容器 View “A”并转到编辑器->取消嵌入。

现在您的子元素已正确定位在 View “B”中,并且没有 20 像素的填充。

在 Xcode 4.5 中测试。

附言当您希望有侧边栏并同时支持 3.5"和 4"显示器时,此技术特别有用。您可以为侧边栏和主视图提供适当的自动调整大小,然后根据它们缩放 subview 。我在让 GLKit View 遵守自动调整大小规则时遇到了麻烦,所以我设置了普通 View 并在其中嵌入了 GLKKit View ,并启用了所有红色的自动调整大小条:

GLKView nested subview frame size and bounds size incorrect

关于ios - 如何防止 Interface Builder 在 subview 内容周围添加 20pt 填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385300/

相关文章:

ios - 将文本属性应用于特定字符串的所有出现

ios - UINavigationController 上的 ViewDidAppear 在向后导航时未被调用

objective-c - 如何向 lldb 控制台中的对象发送消息?

ios - 在 Interface Builder 中呈现自定义 UITextField 子类时出错

ios - 带有 label.text 值的 Swift 本地通知自定义警报声音

ios - iOS 中第一响应者的正式定义是什么?

ios - 由于来自广告商框架的意外 CFBundleExecutable key ,来自 Xcode 7.0.1 的二进制文件未上传

ios - 更新到 Xcode 10.2 后 : Invalid Toolchain error when trying to submit app to App Store

ios - 为什么我不能用 IB 设置 -[UITableView alwaysBounceVertical]?

ios - BartyCrouch - 基本语言检测