ios之Quartz

来源:互联网 发布:淘宝淘口令怎么用 编辑:程序博客网 时间:2024/05/22 10:23

1、随即颜色的创建

+(UIColor *)randomColor{
    static BOOL seeded = NO;
    if (!seeded) {
        seeded = YES;
        srandom(time(NULL));
    }
    CGFloat red =  (CGFloat)random()/(CGFloat)RAND_MAX;
    CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX;
    CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX;
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0f]
;     //参数0.0-1.0

}         


2、绘制图像

-(void)drawRect:(CGRect)rect{

....

CGContextRef  context  = UIGraphicsGetCurrentContext();

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context,  [UIColor redColor]);

CGContextSetFillColorWithColor(context,    [UIColor redColor]);

CGRect currentRect  = CGRectMake(firstTouch.x, 

firstTouch.x, 

lastTouch.x-firstTouch.x,

lastTouch.y-firstTouch.y

);  //其中firstTouch,lastTouch自己定义的

switch(shapeType){

case kLineShape:

CGContextMoveToPoint(context, firstTouch.x, firstTouch.y);

CGContextAddLineToPoint(context, lastTouch.x, lastTouch.y);

CGContextStrokePath(context);

break;

case kRectShape:

CGContextAddRect(context, currentRect );

CGContextDrawPath(context, kCGPathFillStroke);

break;

case kEllipseShape:

CGContextAddEllipseInRect(context, currentRect );

CGContextDrawPath(context, kCGPathFillStroke);

case kImageShape:{

CGFloat horizontalOffset = drawImage.size.width/2;

CGFloat  verticalOffset = drawImage.size.hight/2;

CGPoint drawPoint = CGPointMake(

        lastTouch.x-horizontalOffset ,

       lastTouch.y-verticalOffset

                                                                               );

[drawPoint  drawAtPoint:drawPoint];

}

defalut:

break;

}

}



原创粉丝点击