我试图让我的布局适合多种 iPhone 屏幕尺寸,但当屏幕尺寸小于 iPhone xr 时,我无法调整 UIView 的大小以调整自身大小。
我已经正确限制了 View 、标签和按钮,并且所有内容都对齐,但是当在较小的屏幕尺寸上查看应用程序时,我不完全理解如何调整 UIView 容器的大小以调整自身大小以适应较小的屏幕。
在较小的屏幕上,我的按钮不会显示,因为屏幕尺寸太小。 UIView 是问题所在,其中的堆栈 View 也需要调整文本大小或缩小文本以适合屏幕上的所有内容。
我的 Storyboard的图像以及各自的屏幕尺寸
最佳答案
“我不完全理解如何调整 UIView 容器的大小以调整自身大小以适应较小的屏幕。” -UIViews 不会根据屏幕调整大小,您必须添加约束以便他们选择宽度和高度。或者,您必须设置固定高度和宽度的约束。
在我看来,为了支持较小的屏幕尺寸,您必须使用 ScrollView 作为父 View 。这样用户就可以在应用程序中滚动。您还可以为 ScrollView 内的 View 提供相对宽度和高度。 ScrollView 是必需的,因为您总是需要按钮、标签等的最小宽度和高度。否则,在较大的屏幕(如 iPad)上,它们将非常大,而在较小的屏幕上,它们将非常小。
您可以使用TPKeyboardAvoidingScrollView:How to use TPKeyboardAvoidingScrollView ,或者只是谷歌搜索。它处理键盘显示和隐藏任务,否则这是一个令人头痛的问题。
我认为您可以通过以下方式解决您的问题: 为最上面的 View (最好是 ScrollView )设置一些最小高度和宽度。 现在在其中添加其他 View 并使用相对宽度和高度。在相对宽度和高度中,您以比率给出值。在这里您可以了解如何做到这一点:- Giving width in % values in autolayout 。 还要对内部 View 的最小高度和宽度添加额外的限制,这样它们就不会低于特定尺寸。
我不建议,但您可以始终使用 UIScreen.main.bounds.size.width
和 UIScreen.main.bounds.size.height
来获取宽度和屏幕的高度。并根据 View / Controller 类中的约束设置值。这是在 swift 类中设置约束值的链接:
set contraint value programatically
关于swift - 尝试调整我的 UIView 容器的大小以适应较小的 iPhone 屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56268160/