为啥我的地图视图不使用全屏约束?

Posted

技术标签:

【中文标题】为啥我的地图视图不使用全屏约束?【英文标题】:Why isn't my mapview using the constraints to be full screen?为什么我的地图视图不使用全屏约束? 【发布时间】:2016-04-11 23:36:13 【问题描述】:

这是我目前正在使用的。我反复将约束设置为 0、0、0、0,并且未选中对边距的约束。但是,每次我运行模拟器时,它都不会填满屏幕,而是保持在 600x600。我没有选中高度和宽度,所以我添加的唯一约束是 -20 -> 0 和 20 -> 0。

尺寸等级是否仅适用于平板电脑和 iPhone 功能,还是我可以取消选择并让应用面向 iPhone,但仍管理从 iPhone 到 iPhone 的尺寸变化?

编辑:未经检查的尺寸等级并选择了 iPhone,但仍然遇到方形地图视图的问题。

EDIT2:在此处添加了约束的图像,由于某种原因,它要么不保存,要么不使用加载的约束。 http://imgur.com/9KGY7Nn

已解决:无论出于何种原因,xcode 都没有将顶部和底部约束添加到 0。“添加缺少的约束”解决了问题。

【问题讨论】:

添加约束图像 还有更多的约束信息,你有没有UIViews 可能会掩盖地图? 添加了约束的图片,没有其他 UIViews 覆盖它,因为如果我勾选高度约束并使其比当前高 100,它会注册它。我不确定这些限制是否不适用。我是 XCode 的新手,所以我有点迷茫。 我不知道为什么,但约束似乎没有在地图视图下方,而是在同一级别。 【参考方案1】:

我知道你回答了自己的问题,但我只是想在这里为以后遇到此问题的任何人提供答案。

如果您在界面生成器中看到红色轮廓或红色约束,则表明您遇到了错误(由于缺少约束或约束冲突)。如果你得到一个红色的轮廓/约束,当你运行应用程序时,你将不会得到你正在寻找的东西。 您应该尝试解决此问题以获得所需的结果。

在您的情况下,您有一个前导和尾随约束,但这还不够,您必须添加顶部和底部边距。

当您的大纲为橙色/黄色时,这意味着您有一个警告,它不会中断,但有些地方不合适。如果您单击屏幕右下角resolve auto layout issues 下的update frames,这通常会自行修复。

此外,如果您希望在所有设备上都拥有全屏地图,请考虑在 any - any 类中添加您的约束。

【讨论】:

所以我希望在所有 iPhone 上都有一个全屏地图,但我现在完全关心的是平板电脑,这取决于应用程序的性质。如果严格来说是 iPhone,我还应该处理尺寸等级吗? 是的,因为尺寸等级不仅适用于不同的设备,它也适用于不同的方向。除非您的应用是严格的 iPhone 纵向,否则您可以坚持使用纵向尺寸级别的所有 iPhone。 所以我已经让它工作了,但我现在在顶部添加了一个搜索栏。我的约束类似于工具栏,但搜索栏对象的底部是地图视图对象的开始位置。即使在更新框架并添加缺失的约束之后,我想地图视图也会覆盖搜索栏。截图imgur.com/bdOiaGx 如果不提出更多问题,我看不出有什么问题,但这可能最好作为一个单独的问题提出。提出问题后,如果您愿意,可以在此处链接该问题。 是的,我刚刚做到了***.com/questions/36563012/…

以上是关于为啥我的地图视图不使用全屏约束?的主要内容,如果未能解决你的问题,请参考以下文章

嵌套视图不遵守旋转父级的约束(变换)

当我添加自动布局约束时,为啥我的 textview 不显示?

使用约束为全屏 UIImageView 设置动画

以编程方式设置约束,以便视图全屏

当我使用自动布局移动视图时,为啥 XCode 5 没有在情节提要中添加约束

为啥这些约束不起作用?