尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸

Posted

技术标签:

【中文标题】尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸【英文标题】:Trying to resize my UIView containers to fit smaller iPhone screen sizes 【发布时间】:2019-05-23 04:40:38 【问题描述】:

我正在尝试让我的布局适合多种 iPhone 屏幕尺寸,但我无法调整 UIView 的大小以在小于 iPhone xr 的屏幕尺寸上调整自身大小。

我已经正确地限制了视图、标签和按钮,并且所有内容都对齐了,但是在较小的屏幕尺寸上查看应用程序时,我不完全了解如何调整 UIView 容器的大小以调整自身大小以适应较小的屏幕。

在较小的屏幕上,我的按钮不会显示,因为屏幕尺寸太小。 UIView 是问题所在,其中的堆栈视图也需要调整大小或缩小文本以适应屏幕上的所有内容。

我的故事板的图像,以及各自的屏幕尺寸

【问题讨论】:

从最小的屏幕开始设计并构建 UI 【参考方案1】:

“我不完全了解如何调整我的 UIView 容器的大小以调整自己的大小以适应较小的屏幕。” -UIViews 不会根据屏幕调整大小,您必须为他们,以便他们选择他们的宽度和高度。或者,您必须为固定高度和宽度设置约束。

在我看来,为了支持更小的屏幕尺寸,你必须使用滚动视图作为父视图。这样用户就可以在应用程序中滚动。您还可以为滚动视图内的视图提供相对宽度和高度。 滚动视图是必需的,因为您总是需要按钮、标签等的最小宽度和高度。否则在 Ipad 等较大的屏幕上它们会非常大,而在较小的屏幕上它们会非常小。

您可以使用 TPKeyboardAvoidingScrollView:How to use TPKeyboardAvoidingScrollView,或者只是谷歌。它处理键盘显示和隐藏任务,否则这是一件令人头疼的事情。

以下是我认为您可以解决问题的方法: 为最上面的视图(最好是滚动视图)设置一些最小高度和宽度。 现在在其中添加其他视图并使用相对宽度和高度。在相对宽度和高度中,您以比率给出值。在这里您可以了解如何做到这一点:-Giving width in % values in autolayout。 还要对您的内部视图添加额外的约束,以确保它们的最小高度和宽度不会低于特定大小。

我不建议,但您可以始终使用UIScreen.main.bounds.size.widthUIScreen.main.bounds.size.height 来获取屏幕的宽度和高度。并根据您的视图/控制器类中的约束设置值。这是在 swift 类中设置约束值的链接: set contraint value programatically

【讨论】:

太棒了!感谢您的链接,我会尝试以编程方式进行检查,因为它看起来更简单 好的,如果您需要任何帮助,请告诉我。

以上是关于尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸的主要内容,如果未能解决你的问题,请参考以下文章

调整按钮以适应不同的屏幕尺寸

iPhone UIView - 调整框架以适应子视图

调整 UIView 的大小以适应 CGPath

UIScrollView 中较小的 UIView 以停止触摸

调整 UIView 的大小以适应 uiScrollView 中的所有内容

XIB TableViewCell 未调整大小以适应宽度