• 01-CALayer创建+代理设置


    //
    //  ViewController.m
    //  01-CALayer创建
    //
    //  Created by mac on 16/4/18.
    //  Copyright © 2016年 mac. All rights reserved.
    //
    /*
     1. position:确定当前图层的锚点到父视图层坐标到原点的相对偏移量,在当前图层上找出锚点位置,将两者对齐
     2. 绘制直线三部曲:创建可变路径(pathCreateMutable) : 添加到context(addPath) :开始绘制(drawPath)
                     途径阶段2:起始点确定,  属性设置(线宽和颜色)
     */
    
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        [self creatCALayer];
    }
    
    /**
     *  创建CALayer
     */
    /*
    - (void)creatCALayer {
        
        CALayer *layer = [CALayer layer];
        
        layer.bounds = CGRectMake(0, 0, 200, 200); //position和锚点决定位置,bounds决定大小
    //    layer.frame = CGRectMake(0, 0, 200, 200); //frame属性对于layer的约束只是大小约束,位置是由anchorPoint决定
        layer.backgroundColor = [UIColor orangeColor].CGColor;
        
        [self.view.layer addSublayer:layer];
        
        layer.position = CGPointMake(100, 300);
        layer.anchorPoint = CGPointZero;
    }*/
    
    - (void)creatCALayer {
        
        CALayer *layer = [CALayer layer];
        
        layer.bounds = CGRectMake(0, 0, 200, 200); //position和锚点决定位置,bounds决定大小
        layer.backgroundColor = [UIColor orangeColor].CGColor;
        layer.anchorPoint = CGPointZero;
        layer.delegate = self;
        [self.view.layer addSublayer:layer];
        
        [layer setNeedsDisplay];
    }
    
    /**
     *  layer的代理方法。只有设置了代理才能调用此方法
     */
    - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
        
    //    NSLog(@"hahahha");
        
        CGMutablePathRef path = CGPathCreateMutable(); //1. 在图层中绘制一条线 path获取
        
        CGPathMoveToPoint(path, NULL, 50, 50); //2. 起点
        CGPathAddLineToPoint(path, NULL, 150, 150);//连线点
        
    //    [[UIColor yellowColor] setStroke];
        CGContextSetRGBStrokeColor(ctx, 0, 1, 1, 1);//3. stoke线颜色
        CGContextSetLineWidth(ctx, 5);//线宽
        
        CGContextAddPath(ctx, path);//4. path添加到context
        CGContextDrawPath(ctx, kCGPathStroke);//5. 绘制
    }
    时光见证了成长,还很无知,我想一点点幼稚转为有知!
  • 相关阅读:
    Java 动态编译
    在ubuntu 18.04下,无线网卡无驱动,连不上wifi,显示wifi没有适配器的解决方法
    由浅入深了解Thrift(1,2,3)
    Docker系列05:docker镜像制作 &Docker file
    Docker系列04:docker数据存储
    Docker系列03:docker网络
    关于在github上 下载源码 clone 非 master 分支的代码
    CentOS 6 & 7 忘记root密码的修改方法
    Windows RDP远程连接CentOS 7
    Windows 上用IntelliJ Idea调试百度大数据分析框架Apache Doris FE
  • 原文地址:https://www.cnblogs.com/foreveriOS/p/5403670.html
Copyright © 2020-2023  润新知