如何处理每台机器上不同的 "misplaced view" 警告?

How to deal with different "misplaced view" warnings on every machine?

是什么原因造成的?如何摆脱它们?

创建故事板,添加一些视图。没有警告,所以 store/commit 它。

当你在另一台开发机器上打开它时,有机会,它会报错"misplaced views"。您可以按照建议的 quickfix 来解决它,但是如果您回到第一台机器,它会向相反的方向抱怨。

我认为它必须处理状态栏,在此屏幕截图中您看到 y=64 而不是 y=44,但为什么呢!?两台机器上都是同一个项目。

我可以设置什么让它在任何地方都表现得一样吗?

1:您的其他开发人员可能有不同的 xCode 和不同的警告集。

2: xCode 约束警告可能看起来很神秘,但实际上它的作用是让您保持警惕。当自动布局无法决定视图的放置位置时,例如父视图的左侧或右侧,那么它会尝试通过将视图放在左侧来警告您一次,然后通过将视图放在右侧来警告您一次。警告也一样..

这样做:在结束工作之前,检查所有 大小 类 并确保在任何大小 [=39= 中留下 0 个警告].

顺便说一句:顶部约束有时会坚持状态栏高度 (20px),有时则不会。把它贴在别的东西上。也许将 statusBar 设置为 "Inferred" 会有所帮助。

如何按照 classes 大小进行操作 你从 Any x Any size class 开始 -> 设置所有约束 -> 现在开始切换大小 classes -> 如果一切都适合(没有警告),即使在横向模式下的最小设备上,那么你没问题。

如果有些东西不合适或者你想要更大的底部视图 UIView on iPads 例如然后你从 Any x Any 切换到 Regular x Regular(或者警告所在的位置)- > 并仅针对该特定大小更改相同的约束 class。 "Install constraint" UI 说。顺便说一句,你也可以添加自定义 UI 元素。

看图,我在 Regular x Regular (iPad landscape/portaite) 中底部视图的高度更大:

结果是现在和将来您几乎 100% 可以适应市场上出现的任何尺寸的设备 = 更少的维护时间:)

投票:)