首页 文章

横向/纵向的布局更改

提问于
浏览
0

我有1个故事板,我在Swift 3中使用Xcode 8上的自动布局和大小类 .

我有这个肖像的当前视图:

enter image description here

目前,这是一个垂直堆栈视图,其中包含标签 .

在横向上,左/右侧有很多浪费的空间,而且由于屏幕尺寸,我目前正在隐藏数据:

enter image description here

我想要完成的基本上不是把所有东西都堆叠起来,我想要屏幕左侧的“In Front”数据,然后在中央屏幕上有“Your Laptime” . 然后在右边有“在你身后” .

什么是实现这一目标的最佳方式?我来自Android开发,我会为每个方向都有另一个布局,但我在iOS上找不到类似的东西 .

1 回答

  • 2

    你可以根据特征而有所不同 . 以下是一种完成此操作的方法 . 希望这一切都有意义,但Autolayout有几种方法可以做到这一点 .

    步骤1.将视图拖到故事板上,并将引导至顶部布局引导,前导,尾随和底部均为0.稍后我们将需要此视图来集中所有内容 .

    Step1

    第2步 . 拖动另一个包含我们所有内容的视图 . 并将其固定在20个点的边缘,用于顶部,底部,前部和尾部 . 注意:我们将添加一些更多的约束并在以后更改它,所以请注意 .
    Step2

    步骤3.将另一个视图拖到屏幕上并向其添加3个uilabels . 单击顶部标签并在图像中添加约束 .
    Step3

    步骤4.选择第二个标签并添加底部10,前导和尾随0.不需要顶部,因为它是在步骤3中添加的 .

    步骤5.重复底部标签,与步骤4相同,添加3个约束 .

    步骤6.单击此整个视图并转到顶部菜单,然后选择嵌入StackView . 见图
    EmbedInStackView

    步骤7.在其上方添加UILabel以保持Lap Text并将其固定到顶部20,前导,尾随0和底部,即20的堆栈视图 . 参见图像
    PinLabel

    步骤8.现在将stackview固定为前导0,尾随0,底部0或20 .

    步骤9.使用标签2次复制视图并使用左侧的viewhierchy编辑器将它们拖动到stackview中,现在您的stackview有3个视图 . 它现在应该看起来像图像 .
    StackAlmost

    步骤10.现在更改整个视图中的每个标签,使内容拥抱垂直1000.同时将每个标签的字体更改为所需的字体,并设置为使字体缩小到0.5的系数 . 有关内容拥抱设置,请参阅图像
    ContentHugging

    步骤11.现在返回到保存UILabel和stackview的原始容器,并在编辑器中将20的所有约束更改为> = to并添加并拖动到容纳容器的视图(图像中的灰色)并选择中心垂直和中心水平 . 我结合图像显示不同的菜单附在下面 .

    AttachedMenus

    步骤12.为stackview和正确的设置添加变体 . 单击轴旁边的加号并添加它 .

    [![TraitAxis][9]][9]
    

    步骤13.现在为Alignment添加另一个变体,您的最终stackview设置应如下所示 .
    Final

    收益将如下所示 . 如果您已设置所需的字体并允许它们缩放 . 我删除了一些额外的标签以匹配您的图像,这样做时我不得不将剩余的底部标签固定到标签容器上 . 您可能需要为Plus设备添加另一个对齐变体,但这只是在最后的步骤中添加变体 . 您可能还必须在标签上解决一些较低的优先级,但我认为点击并说好,就可以完成 . 只要做它告诉你的任何事情 . 我希望这有帮助 . 您还可以嵌套堆栈视图,布局可能更容易 . 就像我说的那样,可能还有很多方法可以做到这一点,但这应该会让你走上正确的道路 .

    Payoff

相关问题