【问题标题】:UIView constraint not showing same result on iPadUIView 约束在 iPad 上未显示相同的结果
【发布时间】:2016-10-10 07:36:15
【问题描述】:

我正在使用 Interface builder 来设计我的应用程序,其中包含 Any x Any 维度。该程序在所有设备(iPhone 4、5、6)上都正确显示,但在 iPad 上,约束似乎不起作用。

以下是它在正确设备 (iPhone 6s) 上的外观示例:

但是,当我在 iPad 上运行它时,我得到以下信息:

描述视图的约束是:

标题视图的约束是:

如您所见,iPad 版本没有像 iPhone 版本那样将“描述”字段放在标题图像下方。我尝试重置约束并确保我没有在另一个不是 Any x Any 的维度上更改约束。我不知道为什么它仍然没有正确放置。控制台和界面生成器不会给出任何警告/错误。有人有想法吗?

【问题讨论】:

  • 您是否尝试设置一个约束,将红色视图的底部与全局容器的底部保持距离等于 0?
  • (1) 这将有助于向我们展示约束是什么 (2) 如果是故事板,您是否收到有关约束的任何警告? (3) 运行时,是否在控制台收到任何约束警告?
  • Kokodelo 红色视图是 contentView 等于它的超级视图(蓝色视图是 UIScrollView)。 contentView 具有与 superview 匹配的所有约束。我更新了问题,谢谢娄! :)
  • “似乎约束不起作用”约束正在完美地工作。它们是错误的(对于预期的结果),但它们正在工作。
  • 马特你是对的,我改变了问题

标签: ios iphone xcode ipad interface-builder


【解决方案1】:

我不确定你是如何创建约束的,但试试这个:

  • 为您的图像创建约束:
    1. 尾随空格
    2. 领先空间
    3. 顶部空间
    4. 宽高比匹配
    5. 纵横比
    6. 确保您的图像被剪辑到子视图中。
  • 保留您的描述视图约束。

您可以更改约束 4 和 5。只需确保您的约束知道图像容器的大小并使图像适合。

如果容器小于图像并且图像大于容器,则可能会显示整个图像。但是这样你的约束就不会知道实际的图像大小。

【讨论】:

  • 我遵循了 1-4 的约束条件。我添加了一个高度约束,它始终使容器的固定高度为 250。使用的比率是纵横比填充,导致图像始终填充高度为 250 的容器。问题仍然存在。感谢您的回复!
  • 尝试不加载图像并设置背景颜色。让我知道发生什么事。如果颜色放置正确,这意味着您的图像大于边界。如果颜色不在正确的位置,则意味着您的约束仍然是错误的。
  • 哇,你说得对!我禁用了图像并设置了背景颜色,结果是颜色放置正确,描述也正确!图像怎么可能大于界限?这应该没关系,因为它的纵横比填充 + 250 的固定高度?
  • 我明白了。图像应允许“剪辑子视图”。您可以编辑您的答案以便我标记它吗? :)
猜你喜欢
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 2010-10-13
  • 2023-04-09
相关资源
最近更新 更多