Swift 4.2 CAReplicatorLayer的使用
CAReplicatorLayer可以按照指定的次数复制自己的子层,并按照指定的方式变换位置、大小、颜色、透明度等。以及动画实现。
我们先看一下CAReplicatorLayer的基本属性,找到CAReplicatorLayer的定义,是继承CALayer,所有具有CALayer的所有特性,那么我们看看他独有的属性。
-
instanceCount 这个是拷贝子层的数量,默认是1,支持动画。
-
preservesDepth 默认是NO,设置为
YES
,图层将保持于CATransformLayer
类似的性质和限制。 -
instanceDelay 延时复制,在一定的时间内复制延时,常用来做动画。默认是0。
-
instanceTransform 相对于上一个位置的变换,当锚点时以CAReplicatorlayer中心点。
-
instanceColor 子层的颜色,默认为白色。
-
instanceRedOffset 相对于上一个的红色偏移量,取值0-1,默认为0。
-
instanceGreenOffset 相对于上一个的绿色偏移量,取值0-1,默认为0。
-
instanceBlueOffset 相对于上一个的蓝色偏移量,取值0-1,默认为0。
-
instanceAlphaOffset 相对于上一个的透明度偏移量,取值0-1,默认为0。
这个是CAReplicatorLayer自己独有的特性,现在我们来实现一个简单的评分控件
func createRelayer() -> Void {
let reLayer = CAReplicatorLayer();
layer.addSublayer(reLayer);
reLayer.frame = bounds;
let subLayer = CALayer();
subLayer.frame = CGRect.init(x: 40, y: 40, width: 16, height: 16);
reLayer.addSublayer(subLayer);
subLayer.contents = UIImage(named: "wux.png")?.cgImage;
reLayer.instanceCount = 5;
let cst = CATransform3DMakeTranslation(20, 0, 0)
reLayer.instanceTransform = cst;
}
我们直接创建一个CAReplicatorLayer,然后给他添加一个子Layer,并且给子Layer赋值一个五角星图片,然后按照要求生成5个。这样就出现了一个简单的评分控件。运行效果如下图:
到这里一个简单的控件已经写好了。奋斗的路上总不会缺少人---努力的人。⛽️⛽️⛽️
上一篇: Python之填充数据槽(二)
推荐阅读
-
详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
-
IOS 开发之swift中UIView的扩展使用的实例
-
详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
-
IOS 开发之swift中UIView的扩展使用的实例
-
基于Swift的iOS应用程序开发:使用UIImagePickerController调取摄像头进行拍照
-
[iOS Swift] Singleton——单例模式的使用与理解
-
Swift代理的使用
-
iOS UI入门学习之Objective-C和Swift下UIPageControl的使用讲解
-
开始使用 swift 的 c语言 库
-
《ServerSuperIO Designer IDE使用教程》-1.标准Modbus和非标准协议的使用、测试以及驱动开发。附:v4.2发布