Xcode Preview 和 Simulator 之间的 StackView 不同

Posted

技术标签:

【中文标题】Xcode Preview 和 Simulator 之间的 StackView 不同【英文标题】:StackView different between Xcode Preview and Simulator 【发布时间】:2017-10-23 15:04:36 【问题描述】:

我试图弄清楚如何开始使用 stackviews 并遇到问题,在 Xcode Preview 中一切看起来都很好,但是当我在模拟器或设备上运行它时,它看起来完全不同。

这是我的 Xcode 故事板:

这是它在模拟器中的样子:

我假设这是我的约束问题,但我不确定从哪里开始。

编辑:我已经解决了最初的约束问题,但似乎仍然没有工作。日期没有自己的约束,只有堆栈视图:

编辑:PGDev 解决方案和模拟器结果

【问题讨论】:

我不确定您期望看到什么不同(有些红色?) - 但是,看到那个带有箭头的红色圆圈了吗?点击它并解决场景的所有约束问题。然后,当您执行应用程序时,IB 场景更有可能类似于您在模拟器/设备中看到的内容。.. 不是红色背景,例如我希望时间标签位于右上角。我设置了一个 Top 0 和尾随 0 约束,但它没有放在右上角 您确实需要解决这些布局问题 - 请参阅我上面的评论和 ShivamD 的。除非你这样做,否则 [几乎] 不可能帮助你。好吧,告诉你解决布局问题在技术上是“有帮助的” 忘了补充说我确实解决了那些没有影响的问题 好的 - 请选择日期并截取它在检查器中的约束。在开发过程中还有一个很好的技术是为每个导致你悲伤的组件着色,这样你就可以更好地看到正在发生的事情。我通常使用可怕的淡紫色和石灰色调来做到这一点;-) 【参考方案1】:

我创建了与您相同的层次结构,它给了我预期的结果。

您可以在下面找到故事板的附加屏幕截图以及输出。

故事板:

1.查看层次结构

2。外部 StackView 属性

3.内部 StackView 属性

输出:

如果您仍然遇到任何与此相关的问题,请告诉我。

【讨论】:

谢谢,但这似乎仍然没有给出预期的结果。我不能完全看到你所有的限制,所以这可能是问题所在。查看屏幕截图的最新编辑 视图层次截图包含我使用的所有约束。你检查了内部和外部的 stackview 属性吗? 是的,stackview 属性与您的屏幕截图相同 这里是我创建的示例项目的链接。尝试下载并运行它。链接:github.com/pgpt10/Test 感谢@PGDev - 你的示例项目对我有用。我已经比较了这两个项目,但我仍然无法弄清楚我的问题。我很迷茫。可能必须远离堆栈视图。【参考方案2】:

乍一看似乎没有正确设置约束。

此外,自动布局约束似乎存在一些错误,这就是更新场景旁边有一个“红色箭头”的原因。先解决问题,希望你能得到你想要的结果。

【讨论】:

【参考方案3】:

为了解决 Storyboard 和 UIStackview 的视图问题,需要解决两件事

1) 您应该提供最少数量的约束以使故事板上的视图正确

2)您应该解决视图中的冲突约束(在您的情况下,我看到红色按钮显示存在冲突的约束)

2A) 您还应该解决 here 中描述的内容优先级和模糊性的内在内容问题

【讨论】:

以上是关于Xcode Preview 和 Simulator 之间的 StackView 不同的主要内容,如果未能解决你的问题,请参考以下文章

iOS Simulator 自定义 City Run 在 Xcode 之外

Xcode 6 / iOS 8 Simulator Data 和 Bundle 文件夹脚本

Xcode Iphone Simulator 转风景

删除xcode Simulator

XCode Simulator:如何更改其快捷方式?

使用 Xcode 10 在 Watch Simulator 中未显示资产目录图像?