Quartz2D-2(画不同的线)

本文介绍如何在iOS开发中使用CGContext绘制两条不同样式的线条,并保持样式不互相干扰。通过保存和恢复图形状态的方法,实现线条宽度、颜色及端点样式的独立设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/**

 *  画两条不用样式的线

 *

 *  在获取图形上下文之后,通过 CGContextSaveGState(ctx); 方法,把当前获取的上下文拷贝一份,保存一份最纯洁的图形上下文。

 在画第二条线之前,使用CGContextRestoreGState(ctx);方法,还原开始的时候保存的那份最纯洁的图形上下文。

 */

- (void)drawRect:(CGRect)rect

{

    CGContextRef ref = UIGraphicsGetCurrentContext();

    // 保存一份最初的图形上下文

    CGContextSaveGState(ref);

    

    // 绘制线条一

    CGContextMoveToPoint(ref, 10, 50.0);

    CGContextAddLineToPoint(ref, 200, 300);

    //

    CGContextSetLineWidth(ref, 10.0);

    // 颜色

    [[UIColor redColor] set];

    // 两端的样式为圆角

    CGContextSetLineCap(ref, kCGLineCapRound);

    // 渲染(画线条一)

    CGContextStrokePath(ref);

    

    // 画线条二

    // 拿到保存的图形上下文

    CGContextRestoreGState(ref);

    CGContextMoveToPoint(ref, 200, 30);

    CGContextAddLineToPoint(ref, 20, 220);

    // 也可以重新设置宽、颜色、样式等

//    CGContextSetLineWidth(ref, 1.0);

//    [[UIColor blueColor] set];

//    CGContextSetLineCap(ref, kCGLineCapRound);

    

    CGContextStrokePath(ref);

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值