SwiftUI Modifier之padding
所属分类:ios | 浏览:1430 | 发布于 2022-11-28
通过这边文章,不止是要掌握padding的用法,更重要的是掌握学习的思路。
在xcode中输入.padd后会自动带出下面的方法提示
我这里看到的是padding有三个方法,但是网上的文章很多都是能显示4个方法,还有一个没有任何参数的padding()方法,我猜这可能和版本有关,现在是22年11月,我这里用的是最新的xcode14。
这里就分析我看到的这三个方法,三个方法的定义是:
1、方法一padding(_ length: CGFloat)
定义:
解释:
这个修饰器方法,显式声明不需要实参标签,形参名为length,参数类型是CGFloat。换句话说,调用的时候,只需要传入一个CGFloat的值就可以。CGFloat,CGFloat只是针对Float和Double的typefo定义,在64位系统上,CGFloat就是Double, 在32位系统上,CGFLoat就是Float。
调用:
2、方法二padding(_ edges: Edge.Set = .all, _ length: CGFloat? = nil)
定义:
解释:
这个方法定义了两个参数,第一个参数是Edge.Set类型,这是一个meun类型,第二个参数length是CGFLoat类型。同样这两个参数显式声明不使用实参标签。
调用:
Edge.Set的定义:
拓展:
由于这个方法,第一个参数有默认值,第二个参数是可选类型,所以这两个参数在调用的时候不用初始化,又因为这两个参数又都显式声明不适用实参标签,所以在调用的时候就可以使用padding(),也就是其它文章中见到的不带参数的padding方法。
扩展2:
.padding([.leading, .bottom], 10),这种写法,为什么能传入一个Edge.Set类型的数组,着实还没看明白。
3、方法三padding(_ insets: EdgeInsets)
定义:
这个方法传入一个EdgeInsets类型的参数,通用显式声明不使用实参标签。
EdgeInsets的定义:
调用: