利用drawRect画线的简单用法

关于动画的一些简单应用。这里以画直线为例。

绘图的方法都是在UIView的drawRect中
执行的,对于一次性就能画好的图,直接使用drawRect即可,无需调用UIView的setNeedsDisplay。
但若想多次调用drawRect,即想做出动画效果(如柱状图,效果是慢慢升起),术语叫重绘,那么就需要调用UIView的setNeedsDisplay方法。使用了setNeedsDisplay方法,程序会调用drawRect。类似于cellForRowAtIndexPath,无需在initWithFrame或viewDidLoad中调用,便可以直接被系统执行。

下面画一条不规则的折线,没有使用setNeedsDisplay。必要代码

 1 -(void)drawRect:(CGRect)rect{ 

 2     self.backgroundColor = [UIColor lightGrayColor];

 3     //获得处理的上下文

 4     CGContextRef context = UIGraphicsGetCurrentContext();

 5     //设置线的颜色

 6     CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);

 7     //起始点设置为(0,0):注意这是上下文对应区域中的相对坐标,

 8     CGContextMoveToPoint(context, 0, 0);

 9     //设置下一个坐标点

10     CGContextAddLineToPoint(context, 100, 100);

11     //设置下一个坐标点

12     CGContextAddLineToPoint(context, 0, 150);

13     //设置下一个坐标点

14     CGContextAddLineToPoint(context, 50, 180);

15     //设置下一个坐标点

16     CGContextAddLineToPoint(context, 10, 18);

17     //连接上面定义的坐标点,也就是开始绘图

18     CGContextStrokePath(context);

19 }

以下代码是非必要的。关于线条的颜色设置也可以认为不必要

//设置线条样式

CGContextSetLineCap(context, kCGLineCapSquare);

//设置线条粗细宽度,默认为1.0

CGContextSetLineWidth(context, 1.0);

//开始一个起始路径

CGContextBeginPath(context);

效果如下

利用drawRect画线的简单用法

若想画成柱状图,则只需用CGContextSetLineWidth把线画粗点就可以了,要是折线图也同理。

 

你可能感兴趣的:(drawRect)