【问题标题】:Can i install two different constraints for the same UIView based on a size class?我可以根据大小类为同一个 UIView 安装两个不同的约束吗?
【发布时间】:2015-04-17 22:42:53
【问题描述】:

我开始在 Xcode 6 中使用尺寸类,并尝试根据设备尺寸为同一视图设置约束。

假设我有一个 UIView,我需要应用这些约束:

  • 对于 4" 显示屏 (iPhone 5): superview 的前导和尾随空格距离每边 5px。
  • 对于 iPhone 6 (5.5") 前导和尾随空格为 20 像素。

这张图片说明了我在寻找什么:

是否有可能与尺寸等级有关? 通过在该布局中将边距设置为 5px,我开始为 wCompact x hAny 工作。然后通过将该视图的边距设置为 20px 来切换到 wCompact x hRegular。

但在所有设备(包括 4.7")中似乎都是 20px,就像它没有考虑第一个约束一样。

我在这里缺少什么?甚至可以在尺寸等级的同一个视图上做吗?

p.s 使用 Xcode 6,xib 文件(无情节提要)。

【问题讨论】:

    标签: ios xcode6 interface-builder autolayout size-classes


    【解决方案1】:

    这看起来像完美的中心 x。

    您可以针对父视图的中心 x 在子视图上安装中心 x 约束。

    您只需要修复设置子视图的宽度。

    如果不适合,请在代码中手动设置前导和尾随约束的常量,无论是在 awakeFromNib 还是 viewDidLoad 中。然后在视图上调用 layoutIfNeeded:。

    【讨论】:

    • 居中,但是宽度不一样,padding也不一样。我知道我可以通过代码来做到这一点,我想知道是否有办法通过大小类来做到这一点
    • AFAIK,你不能用尺码分类。
    • 我编辑了这个问题,对不起,但我犯了一个错误——我需要将第一个约束应用于 iphone 5 尺寸 (4") 而不是 4.7"。也许这使它现在可行? (对 Compact | Any 有一个约束,对 Compact | Regular 有一个约束)
    • 所有纵向的 iPhone 设备都使用 wCompact/hRegular,所以你的班级大小不会是这里的解决方案。这个link 为每个设备使用的尺寸等级提供了很好的视觉效果(是的,当您选择尺寸等级时,我意识到它就在那里,但我不认为它尽可能清晰)。
    • 很棒的链接@KurtAnderson
    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多