如何处理每台机器上不同的“错位视图”警告?

Posted

技术标签:

【中文标题】如何处理每台机器上不同的“错位视图”警告?【英文标题】:How to deal with different "misplaced view" warnings on every machine? 【发布时间】:2015-08-22 21:48:44 【问题描述】:

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

创建一个故事板,添加一些视图。没有警告,所以存储/提交它。

当您在另一台开发机器上打开它时,有机会,它会抱怨“错位的视图”。您可以执行建议的快速修复来解决它,但如果您回到第一台机器,它会向相反的方向抱怨。

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

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

【问题讨论】:

【参考方案1】:

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

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

执行此操作:在结束工作之前,检查所有 Size 类,并确保在任何 Size 类中留下 0 个警告。

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

如何通过尺码分类 您从 Any x Any size 类开始 -> 设置所有约束 -> 现在开始切换大小类 -> 如果即使在横向模式下的最小设备上一切都适合(无警告),那么您就可以了。

如果某些东西不适合,或者您想要 iPad 上更大的 UIView 底视图,那么您从 Any x Any 切换到 Regular x Regular(或警告所在的位置)-> 并仅为该特定尺寸类更改相同的约束. UI 说“安装约束”。顺便说一句,你也可以添加自定义 UI 元素。

看图片,我在Regular x Regular(iPad横向/portaite)的底部视图有更大的高度:

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

投票 :)

【讨论】:

整个情节提要在第一台机器上没有警告,并且两台机器上的 Xcode 版本相同。奇怪的是,两台机器的高度似乎不同,536 而不是 443。这从何而来? 状态栏高度为 20px。我确定这是问题的根源。当设备旋转到横向时,状态栏默认隐藏。也许这就是它想告诉你的?可以发一下约束设置的图片吗? 哇,切换大小类我发现一个版本有 0 个警告,另一台机器必须激活 wCompact-hAny。我认为您这样做是正确的方向,您能否添加一些信息如何?但是如果我更新一个框架,它会在另一个中中断吗? 切换到 wRegular 它说预期宽度为 800,实际为 600。但我有一个等宽约束。为什么不更新?我在哪里可以了解有关它的更多信息以及您对通过所有课程进行修复的建议?

以上是关于如何处理每台机器上不同的“错位视图”警告?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理每页权限?

自动布局中的错位视图警告

我该如何处理这个警告:哈希不匹配?

iOS:“标签 - 标签”的错位视图框架在运行时会有所不同

django 如何处理多个 memcached 服务器?

使用自动布局的 IB_DESIGNABLE 自定义视图的错位视图警告和奇怪行为