iOS tutorial 4:CALayer介绍(swift)

参考 A Beginner’s Guide to CALayer

Layers是Core Animation Framework的一部分。Core Animation Framework在iOS架构的位置:

访问CALayer

凡是继承至UIView的都将有一个属性layer来表示CALayer
myView.layer

初始化项目

  • 新建CALayerDemo,single View Application模板
  • 新建一个UIView和一个UILabel

圆角

CALayercornerRadius属性大小表示UIView圆角处圆的半径大小。类似于box.layer.cornerRadius = 20,就形成了圆角,数字越大圆角效果越大,当cornerRadius等于box半径时,box就会变成一个园。

阴影效果

    box.layer.shadowOffset = CGSize(width: 5, height: 5)
    box.layer.shadowOpacity = 0.7
    box.layer.shadowRadius = 10
    box.layer.shadowColor = UIColor.blue.cgColor
  • shadowOffset表示阴影偏移大小,也就是阴影向box的下放偏移5和向右方偏移5距离。
  • shadowOpacity是阴影透明度
  • shadowRadius是阴影涉及的半径,并且这个半径越大,阴影的颜色深浅就会越来越小。shadowRadiusshadowOffset是共同作用的

设置边的宽度和颜色

    box.layer.borderColor = UIColor.black.cgColor
    box.layer.borderWidth = 3

展示图片

  box.layer.contents = UIImage(named: "tree.jpg")?.cgImage
  box.layer.contentsGravity = kCAGravityResize
  box.layer.masksToBounds = true
  • CALayercontents属性是open var contents: Any?,可以设置为图片
  • contentsGravity设置成kCAGravityResize,表示contents的内容会调整大小以适应layer。如果设置成其他值可能出现大小不适的形象,比如kCAGravityBottomRight,将是:
  • masksToBounds为true表示按照layer的边框范围显示内容;如果是false,将会是如下结果

背景颜色和透明度

    box.layer.backgroundColor = UIColor.green.cgColor
    box.layer.opacity = 0.5

代码

CALayerDemo

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 3,673评论 4 21
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 2,670评论 2 11
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 1,617评论 0 12
  • 每个UIView有一个伙伴称为layer,一个CALayer。UIView实际上并没有把自己画到屏幕上;它绘制本身...
    shenzhenboy阅读 1,847评论 0 17
  • CALayer的基本操作. CALayer简介:CALayer我们又称为层,在每个UIView内部都有一个laye...
    _山人自有妙计阅读 566评论 0 0