iOS绘图二

- (void)viewDidLoad {

    [superviewDidLoad];

    

    //1.创建自定义的layer

    CALayer *layer=[CALayerlayer];

    //2.设置layer的属性

    layer.backgroundColor=[UIColorbrownColor].CGColor;

    layer.bounds=CGRectMake(0,0,200,150);

    layer.anchorPoint=CGPointZero;

    layer.position=CGPointMake(100,100);

    layer.cornerRadius=20;

    layer.shadowColor=[UIColorblackColor].CGColor;

    layer.shadowOffset=CGSizeMake(10,20);

    layer.shadowOpacity=0.6;

    //设置代理

    layer.delegate=self;(不用遵守任何协议,因为:

@property(nullable,weak) id delegate;

    [layer setNeedsDisplay];

    //3.添加layer

    [self.view.layeraddSublayer:layer];

}


-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {

    

    UIGraphicsPushContext(ctx);

    CGContextMoveToPoint (ctx,75,10);

    CGContextAddLineToPoint (ctx,10,150);

    CGContextAddLineToPoint (ctx,160,150);

    

    // Closing the path connects the current point to the start of the current path.

    CGContextClosePath(ctx);

    // And stroke the path

    [[UIColorblackColor]setStroke];

    //CGContextStrokePath(context);

    [[UIColorredColor]setFill];

    CGContextDrawPath(ctx,kCGPathFillStroke);

    //kCGPathFillStroke,kCGPathFill,kCGPathStroke

    UIGraphicsPopContext();

}


注意:

    UIGraphicsPushContext(cox);

    UIGraphicsPopContext();这两句代码不写的话控制台会打出警告:

Jul  6 15:47:04  TextBeiSaiEr[8061] <Error>: CGContextSetStrokeColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

Jul  6 15:47:04  TextBeiSaiEr[8061] <Error>: CGContextSetFillColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值