【问题标题】:How do I align a view to the top-left side of a window?如何将视图与窗口的左上角对齐?
【发布时间】:2012-04-24 22:18:16
【问题描述】:

当我在窗口的左上角放置一个按钮时,它会完全按照我的预期对齐:

http://stuf.ro/Button.png

它也不会随窗口一起调整大小,这很好。但是,如果我尝试对自定义视图做同样的事情,它会自动在底部和右侧添加约束,这会使视图与窗口一起调整大小:

http://stuf.ro/View.png

如何摆脱这些?我希望视图永远不会调整大小,并且我希望它被固定在窗口的左上角,就像一个按钮一样。

如果我尝试选择约束并按 Backspace 键,则没有任何反应。编辑菜单中的“删除”选项也被禁用。

【问题讨论】:

  • 您检查过尺寸检查器中的自动调整大小控件吗?
  • @Wienke,是的,我确实检查过它们。我必须在那里和属性检查器中为每个约束转动每个旋钮,但我无法获得所需的行为。
  • 真的吗?我刚刚对其进行了测试,通过移除右侧支柱和水平拉伸器,我可以冻结子视图的宽度。我确实注意到您的屏幕截图中的控件看起来与 Xcode 4 中的控件不同。或者您可能添加了指定此视图的自动调整大小属性的代码?这将胜过您在视觉布局中所做的任何事情。
  • @Wienke,我没有在代码中做任何事情。我正在使用 Xcode 4.3.2。我无法删除右侧和底部约束(或者至少我不知道如何)。我选择了约束,然后按了退格键,但什么也没发生,约束仍然存在。
  • 哦,我使用的是旧版本 (4.0.2),其中,在 Size Inspector(不是 Attributes Inspector)中,有一个标有“Autosizing”的框,红线代表支柱和担架。您单击这些行以添加/删除它们。我没有意识到“自动布局”指的是特定的新功能。也许您可以将其关闭(请参阅此链接的底部:[developer.apple.com/library/ios/#documentation/DeveloperTools/…)。

标签: xcode cocoa xcode4 xcode4.3 autolayout


【解决方案1】:

您的视图会调整大小,因为它具有约束条件,即其上方、下方、左侧和右侧的空间应该是固定的。这些是您可以在屏幕截图中的视图周围看到的线条。在窗口调整大小时满足这些约束的唯一方法是调整视图大小。

您可以选择约束线来修改或删除它们。您可能认为您可以删除下方和右侧的视图,您的视图将不再需要调整大小以满足剩余的约束,但这不起作用。视图需要一个(一组)约束来指定大小和间距:在任何一侧都有(自动创建的)间距约束意味着大小,但如果你去掉其中一个,将不再指定大小。 (这就是您无法摆脱自动创建的约束的原因——这些约束在视图中显示为窄蓝线,在文档大纲中显示为紫色图标。)

这对按钮来说不是问题,因为按钮知道如何调整自己的大小,而 IB 知道按钮如何调整自己的大小。 IB 不知道您的自定义视图,因此您必须自己设置约束。选择视图后,选择 Editor > Pin > Width 以创建宽度约束。这既创建了宽度约束,又将现有的间距约束转换为用户约束(与自动约束相反)——它们显示为实线并在文档轮廓中具有蓝色图标。

现在您可以选择右侧的间距约束并将其删除,您的视图将保持其宽度并粘在左侧。对下方的高度和空间重复此操作,您的视图将保持在左上角并且不会调整大小。

您可以阅读更多关于新的自动布局系统in Apple's guide

【讨论】:

  • 如何删除它们?我尝试选择它们并按 Backspace 键,但没有任何反应。更新了问题。
  • 我忘了你不能只删除自动创建的约束。我已经编辑了答案以解释为什么以及该怎么做。
【解决方案2】:

选择您的视图。转到“文件检查器”并禁用“使用自动布局”。 D

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2014-03-31
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多