iOS14+Swift5.x+Xcode12学习笔记(2)—— 初识布局

本文介绍了iOS14中Xcode12的布局工具,包括Autoresizing和AutoLayout。AutoLayout的trait variation用于设备适配,constraint实现约束布局。文章通过具体案例展示了Storyboard布局、代码布局以及StackView的使用,帮助开发者掌握iOS界面布局技巧。
摘要由CSDN通过智能技术生成

布局简介

Xcode的布局工具共有两套,一套为Autoresizing,另一套为AutoLayout。

Autoresizing

将可视化控件拖放到ViewController上时,默认使用的就是Autoresizing排版。在Storyboard中由两个同心正方形表示,外面的正方形表示SuperView(父视图),里面的正方形代表控件。例如,如果需要控件的宽度随屏幕的宽度自动调整,我们只需要设定控件的「左」、「右」、「上」、以及「水平方向」即可。(可以理解为通过这些线段将控件约束到父视图中,此时他出了宽度之外的位置属性都是被固定的)

AutoLayout

AutoLayout有两个重要的工具,trait variation(特征变量)和constraint(约束)。

  • tarit variation(特征变量)帮助我们检查控件在不同屏幕尺寸的设备上的位置是否合理。在Stroyboard中点击「View as: …」按钮可以查看支持预览的设备。点击Vary for Traits可以设置控件是否在符合某种特征的设备中出现,如某些控件只在iPhone直向时出现,横向时不出现。
    苹果设备的宽高属性在特征变量中被归纳为regular(正常)和compact(湖紧凑),可以组合出四种不同的状况,如 Regular Width和Compact Height。在Storyboard中通常时以缩写的形式表示(wR和hC)。有时,在iPad布局中布局中会遇到Any,代表在regular和compact之间的情况。
  • constraint(约束)帮助我们将控件固定在某个控件或是屏幕的边缘上。当被绑定的控件随着屏幕宽度改变而移动时,绑定到该控件上的控件会随之移动。(tips:在Xcode9之前,以Lable控件为例,如果只设定「左」、「上」约束是没有问题的,在Xcode9之后,会报出警告,因为此时该控件长度过长时可能覆盖其他控件(比如Label中填入了一个超长的字符串或者在多国语言转换时可能会导致字符串超出预想的长度),此时如果让Xcode自动修正,会在控件加上可变动大小的「右」约束(>=)。

Storyboard布局案例

  • 在屏幕中放置三个Label控件,水平居中,分别位于屏幕1/4、2/4、3/4处。
    首先在Storyboard中放置三个Label控件,勾选Horizontally in Container和Vertically in Container。此时三个控件均在界面中水平垂直居中,此时依次设置三个控件的「Align Center Y」的Multiplier(倍率)为2/4、4/4、6/4。(此时三个Label重叠在一起,可以在Storyboard编辑界面的左侧文件浏览中找到各个Label,设置「Align Center Y」属性的尺寸面板图标为三角形)
    需要平均分布的控件的个数与各个控件的倍率对照:
    两个 => 2/3,4/3 (1/2 * 2/3 =
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值