swift详解之二十四---------------CoreAnimation(一)CALayer
CoreAnimation(一)CALayer
CALayer我们平常都是用
下面我们看看 1、contents这个属性的类型被定义为id,意味着它可以是任何类型的对象。你可以给他赋任意值,编译不会报错 , 但是实践中如果你赋值的不是CGImage 。那得到的就是空白。 view1.layer.contents = UIImage(named: "xhh")?.CGImage
可以通过设置
可以自己试一试 , 若果图片超出 2、contentsRect这个是用来裁剪图片的 ,默认的contentsRect是{0,1,1},这意味着整个寄宿图默认都是可见的。如果我们改成{0,0.5,0.5} 图像就就会被裁剪掉左上角的1/4 自己用手画的,比较拙劣,大概就这意思 ,左上角 右下角坐标相当于1,1 。想怎么切自己琢磨去 3、cornerRadius 圆角是一个浮点值,控制着图层角的曲率 。默认为0(直角 )。 如果把 v1.layer.contents = UIImage(named: "xhh")?.CGImage
v1.layer.contentsGravity = kCAGravityResizeAspectFill
v1.layer.cornerRadius = 40
4、borderWidth ,borderColor这两是设置边框宽度和颜色的 ly3.cornerRadius = 20 //设置圆角
ly3.borderWidth = 5 //边框宽度
ly3.borderColor = UIColor.blueColor().CGColor //边框颜色
5、shadowOpacity 设置阴影给shadowOpacity属性一个大于默认值(也就是0)的值,阴影就可以显示在任意图层之下。 阴影默认是向上的 6、shadowColor,shadowOffset和shadowRadius设置阴影的另外三个属性 还是上面的图我们设置个 ly3.shadowOffset = CGSizeMake(2,1)
这个自己去试试吧
ly4.frame = CGRectMake(160,100,50,50)
ly4.contents = UIImage(named: "n")?.CGImage
ly4.shadowOpacity = 0.5 //这个阴影是针对内容的 而不是针对边框的
v1.layer.addSublayer(ly4)
效果 这里编译器自己推断内容边框, 其实阴影是可以自己指定形状的 let squarePath = CGPathCreateMutable();
//CGPathAddRect(squarePath,nil,self.ly4.bounds); //方形的
CGPathAddEllipseInRect(squarePath,self.ly4.bounds); //圆形的
self.ly4.shadowPath = squarePath;
注释掉得那句是方形的 ,看下这两个效果 方形和圆形大小都是根据背景图层大小的 ,如果需要复杂图形的阴影,用UIBezierPath类(以后会说) 7、图层蒙版 mask这个需要两个层来合成一个 , 需要一个图片层 直接看例子把 //图层蒙版 合成
ly5.frame = CGRectMake(0,0,50)
ly5.contents = UIImage(named: "n")?.CGImage
ly6.frame = ly5.frame
ly6.backgroundColor = UIColor.purpleColor().CGColor
ly6.mask = ly5
v2.layer.addSublayer(ly6)
图层5放得是小鸟那个图,图层六就设定了个背景色和frame ,关键是这句 用自己的背景色 ,搞出来个鸟的模板 ,还停不错 ,以后要微信、微博啥的图标直接这么搞。。 先这么多把 ,困了 ,其他的下次说。。示例项目还是原来的地址: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |