iOS 核心动画 - 寄宿图

设置寄宿图

Contents

  1. contentsid 类型 -> 可以赋予任何类型,但只有CGImage类型才会有内容;

  2. contentGravity 类同于 UIImageViewContentMode

  • contentGravity 是一个NSString类型的,并不是枚举;
  1. maskToBounds 类同于UIViewclipsToBounds, 将超出边界部分给裁减掉

  2. contentsRect 允许我们在图层边框里显示寄宿图的一个子域。这涉及到图片是如何显示和拉伸的

  • 使用单位左边,0-1之间,一个相对值;
  • 简单说,{0,0,1,1}是指从左上角开始contents的大小,前两个数值控制左上角的坐标, width:1 表示整个contents的width*1,height:1同理;
  • 当确定好 contentsRect,系统会将这部分内容裁减出来并且拉伸填满layer;
  1. contentsCenter 一个CGRect,它定义了一个固定的边框和一个在图层上可拉伸的区域。
  • 默认情况下,contentsCenter是{0, 0, 1, 1}, 这表明 内容全部区域可均匀拉伸;
  • 具体改变数值和contentsRect类似;

Custom Drawing

  1. drawRect: 可以直接用Core Graphics直接绘制寄宿图, 是UIView的方法,但是底层由CALayer实现的
* 没有默认实现, 系统只有在检测到这个方法被调用,才会生成寄宿图
* 对CPU个内存有大的消耗
* 先调用 *displayLayer:* ,然后系统尝试调用 *drawLayer: inContext:* 

你可能感兴趣的:(iOS 核心动画 - 寄宿图)