约束 - 设计、预览和模拟器/设备之间的不一致

Posted

技术标签:

【中文标题】约束 - 设计、预览和模拟器/设备之间的不一致【英文标题】:Constraints - inconsistent between design, preview and simulator/device 【发布时间】:2014-09-18 11:17:52 【问题描述】:

不确定这是一个错误还是我只是愚蠢但开始讨厌自动布局和约束。我在设计视图和预览中看到的与在模拟器或设备上看到的不同。

例如

设计视图

和预览视图

这正是我希望它看起来的样子......哇哦哦,一旦我在模拟器或 iPad 上运行,你会想它看起来像这样

请注意,ihaveadream 图像似乎与视图的顶部对齐,而不是应有的蓝色视图的底部。这些是我的设置

那么我是白痴还是这是一个错误?

【问题讨论】:

仅看约束名称很难说,但看起来并没有错。您是否尝试过在 UIImageView 中激活“剪辑子视图”选项? 也可以尝试不同的UIImageView内容模式,试试aspect fill 【参考方案1】:

根据 depicus 选择“clip subviews”选项解决了这个问题。

所以发生的事情是约束是正确的,UIImageView 的大小也是正确的,但是图像是在 imageview 边界之外绘制的。

此行为取决于 UIImageView 的内容模式。如果您选择“缩放到大小”,图像将精确缩放到 UIImageView 边框;但对于某些模式,例如“中心”或“方面填充”,图像可能会超出这些限制。

因此,当您为任何视图选择“剪辑子视图”时,该视图将不会显示任何超出其边界的内容。

【讨论】:

我同意,我正要给出同样的答案。如果图像不适合边界,则通常会在图像视图之外绘制图像。下次你有一个溢出的图像时考虑一下。

以上是关于约束 - 设计、预览和模拟器/设备之间的不一致的主要内容,如果未能解决你的问题,请参考以下文章

使用 PreviewView 来展示相机预览

iPhone 6 上的模拟器和物理设备之间的差异

Android的Studio 2.2 预览 - 新的UI设计师和约束布局

iPhone 模拟器与主情节提要预览

检测和删除最少数量的不一致事实的算法(可能在 PROLOG 中)?

如何保持MySQL和Redis的一致性?