美文网首页
CALayer图层

CALayer图层

作者: 低吟浅唱1990 | 来源:发表于2018-08-12 18:10 被阅读8次

    属性

    • 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)


    image

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


    image

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


    image

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


    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图层

          本文链接:https://www.haomeiwen.com/subject/yxxsbftx.html