PaintView 绘图 UIView使用UIImageView实现绘图效果

来源:互联网 发布:手机正装照软件 编辑:程序博客网 时间:2024/06/05 22:44

//

//  PaintView.m
//  TestPaint
//
//  Created by minixx on 12-5-7.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import "PaintView.h"

@implementation PaintView
@synthesize drawImage;

- (id)initWithFrame:(CGRect)frame
{
    //默认初始化,imageView
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        if(self.drawImage==nil){
            self.drawImage = [[UIImageView alloc] initWithImage:nil];
            [self.drawImage setFrame:self.frame];
            [self addSubview:self.drawImage];
            [drawImage release];
        }
    }
    return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
   
         UITouch *touch = [touches anyObject];
         lastPoint = [touch locationInView:self];
    NSLog(@"lastPoint.x = %f",lastPoint.x);
    NSLog(@"lastPoint.y = %f",lastPoint.y);
}
//监听触摸事件
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    currentPoint = [touch locationInView:self];
    NSLog(@"currentPoint.x = %f",currentPoint.x);
    NSLog(@"currentPoint.y = %f",currentPoint.y);
    
    UIGraphicsBeginImageContext(self.frame.size);

    [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)];
    
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);//设置宽度
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);//设置颜色
    CGContextBeginPath(UIGraphicsGetCurrentContext());//开始路径
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);//起始点坐标
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(),currentPoint.x, currentPoint.y);//终点坐标
    CGContextStrokePath(UIGraphicsGetCurrentContext());//开始绘制
    //将画好得生成image保存在原图片//////////
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();//把图形上下文
    UIGraphicsEndImageContext();
    lastPoint = currentPoint;
//    [self setNeedsDisplay];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    
}

@end


原创粉丝点击