iPhone重绘机制

来源:互联网 发布:二维数组c# 编辑:程序博客网 时间:2024/05/07 01:36

iPhone重绘机制
今天来讲解一下iPhone的重绘机制,iPhone重绘机制给人的最大的感觉是,奇怪!!!
下面我们来讲解一下如何使用iPhone进行绘图、重绘操作。
iPhone的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。

下面先说明一下绘图,比如,你想绘制一个方块,你需要写一个类来扩展UIView并在drawRect方法中填入如下代码:

Code block   
- (void)drawRect:(CGRect)rect {    // Drawing codeCGContextRef context=UIGraphicsGetCurrentContext();CGContextSetLineWidth(context, width);CGContextSetStrokeColorWithColor(context, [[UIColor redColor] CGColor]);CGContextStrokeRect(context, CGRectMake(110.0, 110.0, 100.0, 100.0));CGContextStrokePath(context);}

 

则效果如下:

再说明一下重绘,重绘操作仍然在drawRect方法中完成,但是苹果不建议直接调用drawRect方法,当然如果你强直直接调用此方法,当然是没有效果的。苹果要求我们调用UIView类中的setNeedsDisplay方法,则程序会自动调用drawRect方法进行重绘。如下图所示:

在上图中,点击“画圆”按钮则在屏幕上绘制一个圆,点击“画方”按钮则在屏幕上绘制一个方,拖动滑块可以调节连线的粗细。

 

源码下载:UseDrawApi