zoukankan      html  css  js  c++  java
  • iOS-CALayer的介绍

    一 、CALayer介绍

    • 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView
    •  其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层
    • 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层

      @property (nonatomic,readonly,retain) CALayer *layer; 

    •  当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示
    • 换句话说,UIView本身不具备显示的功能,是它内部的层才有显示功能

    二、CALayer的基本使用

    • 通过操作CALayer对象,可以很方便地调整UIView的一些外观属性
    • 还可以给图层添加动画,来实现一些比较炫酷的效果

    三、CALayer的属性

    • 宽度和高度

      @property CGRect bounds;

    • 位置(默认指中点,具体由anchorPoint决定)

      @property CGPoint position;

    •  锚点(x,y的范围都是0-1),决定了position的含义

      @property CGPoint anchorPoint;

    •  背景颜色(CGColorRef类型)

      @property CGColorRef backgroundColor;

    •  形变属性

      @property CATransform3D transform;

    • 边框颜色(CGColorRef类型)

      @property CGColorRef borderColor;

    •  边框宽度

      @property CGFloat borderWidth;

    • 内容(比如设置为图片CGImageRef)

      @property(retain) id contents;

      在此介绍CALayer有2个非常重要的属性:position和anchorPoint

      @property CGPoint position;

      用来设置CALayer在父层中的位置,以父层的左上角为原点(0, 0)

      @property CGPoint anchorPoint;

      称为“定位点”、“锚点”

      决定着CALayer身上的哪个点会在position属性所指的位置

      以自己的左上角为原点(0, 0)

      它的x、y取值范围都是0~1,默认值为(0.5, 0.5)

     四、关于CALayer的疑惑

      首先

    • CALayer是定义在QuartzCore框架中的
    • CGImageRef、CGColorRef两种数据类型是定义在CoreGraphics框架中的
    • UIColor、UIImage是定义在UIKit框架中的

       其次

    • QuartzCore框架和CoreGraphics框架是可以跨平台使用的,在iOS和Mac OS X上都能使用
    • 但是UIKit只能在iOS中使用

       为了保证可移植性,QuartzCore不能使用UIImage、UIColor,只能使用CGImageRef、CGColorRef

  • 相关阅读:
    phpquery中文手册
    Fiddler工具使用介绍一
    Xshell出现要继续使用此程序必须应用到最新的更新或使用新版本
    PHP Ajax 跨域问题最佳解决方案
    charles和Fiddler感觉哪个更好用
    趣味小应用:用HTML5消磨时光 狼人:
    开发人员必知的20+HTML5技巧 狼人:
    云计算时代:LAMP何去何从? 狼人:
    Adobe改善Flash隐私功能 狼人:
    LAMP网站架构方案分析 狼人:
  • 原文地址:https://www.cnblogs.com/caofutao/p/4842796.html
Copyright © 2011-2022 走看看