CALayer图层

属性

  • contents
    该属性可通常指定一个CGImage,代表图层要显示的图片。
layer.contents = (_bridge id)image.CGImage;
  • contentGravity
    该属性的作用相当于UIView中contentMode。表示图层对内容的操作怎么对齐

  • contentScale
    定义了图层的像素尺寸和视图大小的比例。默认是1.0的浮点数

  • maskToBounds
    切除超出边界的内容

  • contentsRect
    允许我们在图层边框里显示寄宿图的一个子域。 有时候需要显示一张图片的一部分区域。{0,0,1,1}代表全部区域

  • contentsCenter
    属性是一个Rect,定义了一个固定的边框和一个在图层上可以拉伸的区域


关于布局
frame 代表了图层外部坐标 也就是占据父图层的空间
bounds内部坐标
position代表了父图层anchorPoint所在的位置。

anchorPoint锚点
通过position来控制frame的位置,是用来变换图层的基准点。
默认anchorPoint是图层的中点

position和anchorPoint添加一个红色图层到绿色图层上,红色图层显示到什么位置,由position属性决定假设红色图层的position是(100,100)到底把红色图层的哪个点移动到(100,100)的坐标位置,锚点。红色图层的锚点是(0,0)


CALayer图层_第1张图片
image

红色图层的锚点是(0.5,0.5)


CALayer图层_第2张图片
image

红色图层的锚点是(1,1)


CALayer图层_第3张图片
image

红色图层的锚点是(0.5,0)


CALayer图层_第4张图片
image

专用图层

  • CAShapeLayer 通过矢量图形绘制的图层子类,指定线宽、颜色等属性,用CGPath来定义想要绘制图形,渲染出来。

  • CATextLayer
    以图层的形式包含了UILabel几乎所有的绘制特性,并且额外提供了一些新的特性。

    CATextLayer *textLayer= [CATextLayer layer];
    textLayer.frame = self.view.bounds;
    [self.view.layer addSublayer:textLayer];
    textLayer.foregroundColor = [UIColor blackColor].CGColor;
    textLayer.alignmentMode = kCAAlignmentJustified;
    textLayer.wrapped = YES;
    UIFont *font = [UIFont systemFontOfSize:15];
    CFStringRef fontName = (__bridge CFStringRef)font.fontName;
    CGFontRef fontRef = CGFontCreateWithFontName(fontName);
    textLayer.font = fontRef;
    textLayer.fontSize = font.pointSize;
    CGFontRelease(fontRef);
    NSString *text = @"Hello World";
    textLayer.string = text;
    textLayer.contentsScale = [UIScreen mainScreen].scale;
  • CAGradientLayer
    用来生成两种或更多颜色平滑渐变的。
   CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.frame = self.view.bounds;
    [self.view.layer addSublayer:gradientLayer];
    gradientLayer.colors = @[(__bridge id)[UIColor   redColor].CGColor,\
   (__bridge id)[UIColor greenColor].CGColor];
    gradientLayer.startPoint = CGPointMake(0, 0);
    gradientLayer.endPoint = CGPointMake(1, 1);

你可能感兴趣的:(CALayer图层)