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

时间:2019-05-23 04:40:39

标签: swift xcode autolayout storyboard constraints

我正在尝试使布局适合多种iPhone屏幕尺寸,但是当屏幕尺寸小于iPhone xr时,我无法调整UIView的大小以自行调整大小。

我已经适当地约束了视图,标签和按钮,并且所有内容都对齐了,但是当以较小的屏幕尺寸查看应用程序时,我不完全了解如何调整UIView容器的大小以适合于较小的屏幕。< / p>

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

我的故事板的图像以及相应的屏幕尺寸

enter image description here

1 个答案:

答案 0 :(得分:0)

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

我认为,要支持较小的屏幕尺寸,必须将滚动视图用作父视图。这样用户可以在应用程序中滚动。另外,您可以为scrollview中的视图提供相对宽度和高度。 需要滚动视图,因为您始终希望按钮,标签等的宽度和高度最小。否则,在较大的屏幕(如Ipad)上,它们将非常大,而在较小的屏幕上,它们将非常小。

您可以使用TPKeyboardAvoidingScrollView:How to use TPKeyboardAvoidingScrollView,也可以只使用google。它可以处理键盘显示和隐藏任务,否则很头疼。

以下是我认为您可以解决问题的方法: 为最顶视图设置一些最小的高度和宽度(最好是滚动视图)。 现在,在其中添加其他视图,并使用相对宽度和高度。在相对宽度和高度中,您可以按比例给出值。在这里,您可以了解如何执行此操作:-Giving width in % values in autolayout。  另外,还要在内部视图上添加其他限制,以使高度和宽度最小化,以使它们不会低于特定大小。

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