【问题标题】:How to resize a UIImageView (for 3.5" and 4") in interfaceBuilder with constrain如何在带有约束的 interfaceBuilder 中调整 UIImageView(用于 3.5" 和 4")的大小
【发布时间】:2014-02-19 22:13:52
【问题描述】:

我正在尝试将 UIImageView 放入我的 ViewController 的 UIView 中,当 UIView 为 480px 或 568px 高度时会自动调整 UIImageView 的大小。但它在 IB 中似乎非常复杂!

如果我在我的视图控制器中放置一个普通视图,它会自然地调整大小。但对于我的 UIImageView 它没有。即使我选择 scaleToFill 模式。什么都不会发生。

所以看来我需要使用约束。但问题是当我添加一个简单的约束只是为了告诉 UIImageView 是 X 高度大小。 IB 告诉我有错误,并要求我向视图的其他组件添加大量约束。这正在传播,我正在完成数千个约束。这很令人困惑,因为我只想让我的 UIView 调整到父容器的大小,并且让 IB 告诉我我需要为其他从不询问的组件添加一个约束。

在代码中只需要两行!我不明白为什么它在 IB 中如此复杂。 那么有人可以解释一下如何让我的 UIImageView 根据他的父母调整大小吗?

我在 Google 上进行了大量研究,但没有发现任何对我有帮助的东西。就像没有人永远不必使用完整的 imageView 模式。

请注意,我已经成功地约束了另一个 viewController 中的完整 UIImageView,但这有点晦涩难懂。但是现在我不知道为什么当我做同样的事情时,IB 想要添加很多很多的约束。

【问题讨论】:

    标签: ios xcode interface-builder


    【解决方案1】:

    我认为最好使用与父视图(即视图控制器)有距离的约束,而不是高度/宽度约束。选择您的图像视图并添加如下约束:

    图像视图将自动填满 3.5 英寸和 4 英寸 iPhone 的屏幕。之后只需使用图像视图的contentMode 即可获得所需的效果。

    【讨论】:

    • 嗨,马可。感谢您的快速回复。我已经尝试过您的操作。但是当我添加这 4 个约束时,uiimageView 根本不会拉伸。当我在 3.5" 和 4" 之间切换时,我收到警告,告诉我“uiimageView 应该有约束,等等等等”。如果我修复它,当我再次切换时会出现警告。
    • 如果您在 Interface Builder 中尝试这样做,它会显示一些警告,但在模拟器中它应该会正常运行。你试过运行它吗?
    • 是的,它有效!哇,你是魔术师。我从来没有自己找到它,因为所有这些警告对我来说看起来如此模糊!非常感谢
    • 没问题。它比 Xcode 4 天要好得多,但绝对是一个痛苦的 a** :) 快乐编码!
    【解决方案2】:

    使用自动布局或旧的自动调整大小蒙版是解决问题的方法。
    Marko 指出了解决方案,但根据您的要求缺少一些东西。使用contentMode,您可以随意调整图像以适应,或填充UIImageView 的边界,无论是否保持纵横比。
    我过去遇到的一个问题是加载 2 个不同的图像,一个用于 3.5 英寸屏幕,另一个用于 4 英寸屏幕。 Apple 表示您可以使用此命名约定在运行时加载正确的图像。

    • 名字~iphone.png
    • name@2x~iphone.png
    • name~ipad.png
    • name@2x~ipad.png
    • name-568h@2x~iphone.png (iPhone 5)

    它适用于视网膜和不同的设备(iphone 或 ipad),但 iphone5 约定仅适用于启动图像。
    现在只剩下一个机会,检查屏幕大小并在运行时加载正确的,在我看来这不是一个很棒的解决方案。
    在 Xcode 5 中,感谢图像资产功能,可以为特定的屏幕尺寸加载正确的图像。只需添加一个新图像集,在属性检查器中转换为特定于设备的图像,然后将图像拖到其插槽中即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      • 2023-04-03
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多