如何防止Interface Builder在子视图内容周围添加20pt填充?
问题描述:
如何防止Interface Builder在子视图内容周围添加20pt填充?
看到20px(pt's rather)的填充? IB在两种情况下自动执行此操作,当您按Cmd + =
自动调整超级视图以适合子视图内容时,以及选择Editor > Embed In > UIView, UIScrollView etc.
时。
后者特别讨厌,因为它需要一步一步的节省,并将其转变为一种重新定位的麻烦,只比手动完成时略微好一些,并且将所有子视图的相对位置拖到层次结构中的不同位置。
与Embed In
选项
另外,通过IB(-20,-20),仿佛使得它更转到新上海华包装的定位...
我失去了一些东西在这里?有没有办法来防止这种填充?
答
我终于想通了如何做到这一点,与此相关的答案:
Group views in Interface Builder
- 选择所有的你希望嵌入(按Shift或命令点击它们)的意见。
- Editor-> Embed In-> View。这会用多余的20像素填充创建一个视图“A”。
- 用你想要的实际边界创建一个新的视图“B”(因此在所有边上比“A”小20个像素)。
- 将旧容器视图“A”拖到新的容器视图“B”中(Xcode将在“B”中将它居中,保留所有子元素的当前位置)。
- 点击旧的容器视图“A”并转到编辑器 - >解开。
现在您的子元素在视图“B”中正确定位,并且没有20像素填充。
在Xcode 4.5中测试。
P.S.当你希望有一个侧边栏并且同时支持3.5“和4”显示时,这种技术特别有用。您可以给侧边栏和主视图设置适当的自动调整大小,然后调整与其相关的子视图。我遇到了麻烦GLKit意见,尊重自动调整大小的规则,所以我成立了普通的观点和嵌入GLKKit视图中他们所有的红色自动调整大小酒吧的启用:
答
所有你需要做的,在至少在Xcode 7.2是给集装箱查看以下限制
Trailing Space to Superview = -20
Leading Space to Superview = -20
答
这是为我工作在Xcode中9.注意,这样你将失去你是嵌入顶视图的约束。因此,要将一个视图嵌入另一个视图:
- 在与要嵌入的视图相同的级别上创建另一个空白视图。
- 正确定位新视图并将其添加到 超视图。我认为在大多数情况下,您希望像现有视图一样复制相同的约束条件。
- 然后,选择需要嵌入的视图并将其拖动到新视图的 下。现在,您已将视图嵌入到新视图中。 您还需要将0嵌入式视图 的边缘约束添加到新视图。
就是这样。
不错的技术。谢谢。但基本上正确的答案是“你不能”? – 2013-06-01 14:31:15
在Xcode 5.1中工作。这应该是正确的答案,因为它提供了问题的解决方案,尽管它不像预期的那样直接。 – kraftydevil 2014-04-29 02:47:22
太棒了:)我喜欢这样。 – Vignesh 2014-04-30 10:12:40