iOS开发的2D绘制--CoreGraphics的简单使用一(画线条)

在iOS开发中,经常遇到需要重新绘制某些特定区域,比如画两条不同颜色的线、画一些文字什么的,那么如何去操作呢?

我将分几篇文章,慢慢的介绍一下iOS开发当中的2D绘制问题。


**********正式开始了*********月若无涯原创********


首先我们在每次创建一个view的时候,应该都能看到有如下这样的部分的代码:

/*

 // Only override drawRect: if you perform custom drawing.

 // An empty implementation adversely affects performance during animation.

 - (void)drawRect:(CGRect)rect

 {

 // Drawing code

 }

 */


那么这里是用来做什么的呢?看注释可以知道,这里就是用来重绘你需要的内容的地方。默认情况下是被注释掉的。

所以,如果我们要重绘,第一步就是取消这里的注释,或者说,我们需要在

- (void)drawRect:(CGRect)rect

这方法里进行重写,来完成绘制的工作。


废话不多说,先来个简单的,咱们就画一条绿色的线

- (void)drawRect:(CGRect)rect

{

    // Drawing code

    CGContextRef context=UIGraphicsGetCurrentContext();//获取绘图用的图形上下文

    CGContextSetFillColorWithColor(context, [UIColorwhiteColor].CGColor);//填充色设置成白色

   CGContextFillRect(context,self.bounds);//把整个空间用刚设置的颜色填充

    //上面是准备工作,下面开始画线了

    CGContextSetStrokeColorWithColor(context, [UIColorgreenColor].CGColor);//设置线的颜色

    CGContextMoveToPoint(context,20,20);//画线的起始点位置

    CGContextAddLineToPoint(context,200,60);//画第一条线的终点位置

    

    CGContextStrokePath(context);//把线在界面上绘制出来

}

看看效果:

一条绿色的线,绘制在白色的背景上。


好了,那么增加难度,画许多条线,其中最后我们增加一条红色的线,注意我们的最后的颜色发生了改变,怎么操作,看代码:

- (void)drawRect:(CGRect)rect

{

    // Drawing code

    CGContextRef context=UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [UIColorwhiteColor].CGColor);//填充色设置成白色

   CGContextFillRect(context,self.bounds);//把整个空间用刚设置的颜色填充

    //上面是准备工作,下面开始画线了

    CGContextSetStrokeColorWithColor(context, [UIColorgreenColor].CGColor);//设置线的颜色

    CGContextMoveToPoint(context,20,20);//画线的起始点位置

    

    CGContextAddLineToPoint(context,200,60);//(20,20)(20060),此时画笔位置在(20060)

    CGContextAddLineToPoint(context,240,90);//(20060)(24090),此时画笔位置在(24090)

    CGContextAddLineToPoint(context,80,120);//(24090)(80120),此时画笔位置在(80120)

    

    //下面开始画红色的条线

    CGContextStrokePath(context);//把之前的相同颜色的线先画出来,因为我们要换个颜色,如果不换颜色,可以不用这句

    CGContextMoveToPoint(context,70,130);//由于上面的线已经画了,我们已经没有可用的画笔了,所以重新设置画线的起始点位置

    CGContextSetStrokeColorWithColor(context, [UIColorredColor].CGColor);//再次设置线的颜色

    CGContextAddLineToPoint(context,230,180);//画第二条线的终点位置

    

    CGContextStrokePath(context);//把线在界面上绘制出来

}

再看看效果:


画线的工作基本上就是这样,是不是很简单?


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值