【问题标题】:Xcode 6: How to make an image view fill the screen on all devices? Auto layout not working?Xcode 6:如何使图像视图填满所有设备的屏幕?自动布局不起作用?
【发布时间】:2015-01-27 15:39:43
【问题描述】:

所以我有一个图像视图和一个按钮。我需要图像视图在所有设备上都是正确的大小(看起来不是被压扁或拉伸),更重要的是我需要它是屏幕的大小。我需要按钮在所有设备上保持在大致相同的位置。

回到 Xcode 5 我记得自动布局解决了这个问题,但现在这不起作用。我看着https://www.youtube.com/watch?v=G53PuA_TlXk 并尝试控制拖动到视图控制器并水平和垂直居中视图,但我无法让它缩放到屏幕大小。视频没有解决这个问题。

在控制拖动以保持图像视图缩放时,是否需要选择特定选项?我该怎么办?

【问题讨论】:

    标签: ios swift xcode6


    【解决方案1】:

    你需要做两件事:

    1. 正确设置约束
    2. 选择所需的缩放类型。

    设置约束:

    1. 拖出一个 Image View 并将其大致放在视图的中心。
    2. 将您的尺码等级设置为 wAny hAny
    3. 点击屏幕底部的 Pin 图 |-[]-|
    4. 打开所有四个橙色工字梁。将四个常量设置为零。
    5. 取消选中限制到边距复选框。
    6. 点击添加4个约束

    选择缩放:

    1. 单击您添加到视图控制器的图像视图。
    2. 在右侧的 Attributes Inspector 中,选择您的图像。
    3. 视图模式设置为Aspect Fill(根据需要填充整个屏幕,顶部/底部或左侧/右侧)或Aspect Fit(信箱图像,以便整个图像显示为未裁剪)。


    您可以查看为您创建的约束。在文档大纲中,您应该在图像视图下看到 4 个约束:

    单击一个约束,然后在右侧的 Attributes Inspector 中查看它们。这是我创建的 4 个:

    【讨论】:

    • 它不工作。图像已缩放并在情节提要上看起来应该如何,但仍然略微向左并且未在设备上缩放。此外,当我删除图像视图并尝试创建一个新视图时,它甚至不会出现在 iPhone 上。屏幕只是白色的。
    • 您是否更改了尺寸等级的设置?你应该把它们留在上面。设置约束时,屏幕底部应显示wAny hAny
    • 我做到了。我只是将它们改回 wAny 和 hAny 并且情况有所改善,但仍然无法正常工作。有没有办法为不同的设备制作单独的故事板?
    • 我发现了这个关于在 Xcode 6 中使用单独故事板的链接:stackoverflow.com/questions/26684476/…
    • 您可以检查为您创建的约束。在文档大纲中单击它们,然后在右侧的 Attributes Inspector 中查看它们的设置。如果你愿意,我可以添加我的 4 个约束的图片。
    【解决方案2】:

    这对我有用:

    查看模式:
    方面填充

    作为图像的约束:
    将 X 中心对齐到:Superview
    等宽:Superview

    '等宽' 属性是将图像缩放到屏幕大小的属性。

    如果您想让按钮位于特定位置,请设置从它到视图的约束,您要考虑的主要约束是顶部约束和任何左侧或右侧约束。因此,您是在告诉视图要将按钮相对于其侧面放置在何处。

    希望这会有所帮助。

    【讨论】:

    • +1 让我开始使用,但对于我的图像,我最终通过了编辑器下的重置选项 > 选择视图控制器时解决自动布局问题。
    【解决方案3】:

    不确定我是否“完全理解”您的需求,但如果您想将图像视图拖到控制器中,并且该图像视图会自动填充整个视图控制器背景:只需将图像视图组件拖到视图中即可控制器窗口。

    问题是:如果您在视图控制器周围看到一条蓝色边界线,则在拖动之前,图像视图不会填充视图控制器。

    您需要在视图控制器窗格中单击背景上的任意位置,蓝色边界线消失,只有这样,您拖入的图像视图才会自动填充整个控制器背景.

    如果您在使用预览时发现您的图片被压扁或拉伸,则只需转到“解决自动布局问题”菜单,然后单击“添加缺少的约束” - 然后所有屏幕都应调整大小以使其在所有屏幕上看起来都正常.

    【讨论】:

      【解决方案4】:

      在我的限制条件下,我需要取消选中“相对于边距”。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 1970-01-01
        • 2015-05-25
        • 1970-01-01
        • 2014-12-15
        • 2015-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多