繁体   English   中英

如何使用情节提要板为不同的设备设置自动布局

[英]how to set autolayout for different devices by using storyboard

我有一张包含9个不同区域按钮的冰岛地图。 每个按钮都有不同的大小。 我希望地图可以在不同的设备上显示相同的内容。 我只知道将中央按钮设置为水平放置在容器中,垂直放置在容器中。 但是,其他按钮,无论我如何设置约束,在iphone SE或iPhone Plus上都会一团糟。 (我正常使用iphone 8)

在此处输入图片说明

在此处输入图片说明

谁能教我如何设置8个左键的约束? 谢谢!

最好的事情是垂直的UIStackView嵌套了3个水平的堆栈

MainStackView约束

垂直和水平居中,宽度和高度与屏幕成比例

然后在其内部放置3个stackViews设置axis = horizo​​ntal并为每个内部堆栈放置3个按钮

注意:所有堆栈的分布均为fillEqually,间距= 10

在此处输入图片说明

期待这个演示

我过去所做的事情都使用单个控件作为所有其他控件的锚点。

基本上,这意味着将中心按钮固定在容器视图的中间(水平和垂直中心)

然后,将中间/顶部和底部控件限制在其上(垂直空间和水平居中位置)

垂直居中和水平居中

从那里开始,将行中的每个控件限制在这些元素上(水平间距和垂直居中)

顶排 底行

您可能还考虑将大小限制为中心控件,因此所有控件共享相同的大小。 对我来说,这意味着将控件的宽度限制为一个设置值,然后对高度应用宽高比。 我这样做是因为然后我可以更改宽度约束的值,并且所有控件都会更改大小

大小相等

因为iPhone 5s,iPhone,iPhone +,iPhone X都共享相同的“大小设置类”,所以这使其变得更加困难(因为您无法应用特征-但您可以在iPad和iPhone上使用;)。

此时,我将中央控件的宽度约束(如果需要,还可以绑定高度)绑定到源代码,并且在加载视图时,确定设备的屏幕尺寸并对约束值进行较小的调整。

如果您希望使用完整的“故事板”解决方案,则可以将中央控件的宽度限制在超级视图上,并应用修饰符

宽度受限于超级视图

使用情节提要中的“设备”模板,布置一台iPhone 5s和iPad Pro

iPhone 5S iPad Pro

总而言之,您拥有“选项”。 您甚至可以考虑使用UIStackView定义行,就我个人而言,我发现将控件约束到中央锚点更容易-但这是我的经验,您的需求可能有所不同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM