应用程序在模拟器上的显示与在情节提要中的不同
Posted
技术标签:
【中文标题】应用程序在模拟器上的显示与在情节提要中的不同【英文标题】:app appears different on the simulator than in story board 【发布时间】:2019-03-01 18:35:27 【问题描述】:我刚刚进入 ios 开发,我正在尝试构建一个待办事项列表应用程序。我制作了基本布局,但是当我在模拟器上运行它时,它看起来与我在情节提要上看到的不同。
基本上,我的做法是将 UIView 和 UITable 视图放在一个堆栈视图中,并将其固定到屏幕的 4 个边缘。然后我将对齐设置为“填充”,将分布设置为“按比例填充”。 在情节提要上,UIView 位于屏幕顶部的 20-25%,其余部分是表格视图。然而,在模拟器上,看起来它们每个都占据了屏幕的一半。 here's an image of the simulator and the storyboard showing the difference
【问题讨论】:
【参考方案1】:这是因为您依赖堆栈视图来为您布局 UIView 和 UITable。如果将它们从堆栈视图中取出,则可以为顶部区域 (UIView) 指定特定高度,并将顶部区域 (UIView) 的底部固定到底部区域 (UITableView) 的顶部。
或者,您可以将它们保留在堆栈视图中,并将分布更改为“填充”,并将 UITableView 的 Content Hugging Priority 更改为小于 UIView。这将使 UIView 尽可能大,并让 UITableView 占据其余空间,这听起来像你想要的。这是对堆栈视图的不同分布可能性的一个很好的描述:
https://spin.atomicobject.com/2016/06/22/uistackview-distribution/
【讨论】:
我做了第二个选项(你将它保存在堆栈视图中),但我收到一个错误,说它需要 UITableView 和 UIView 的 y 位置。如果我让它修复错误,那么当我切换到较小的屏幕时会出现其他约束错误。 这与我所说的无关。您需要将堆栈视图固定到父视图的顶部/底部/左侧/右侧。你需要在 UIView 中有一些东西,固定在 UIView 的顶部和底部,或者你需要为 UIView 指定一个高度或最小高度。在不知道您要做什么的情况下,很难提供更多细节。 根据您的图像,您似乎需要一个标题。好吧,那个标题应该有一个固定的高度。听起来您没有指定 UIView 的高度,也没有指定 UIView 中的任何内容。以上是关于应用程序在模拟器上的显示与在情节提要中的不同的主要内容,如果未能解决你的问题,请参考以下文章
UIImageView 在不同设备上保留情节提要“预览屏幕边界” - 框架不根据屏幕尺寸更新
UINavigationBar 自定义颜色与在情节提要中嵌入 UInavigationController