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

//

//  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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值