创建一个以OC为开发语言的IOS工程,新建一个类继承与UIView
重写一下方法并实现
//在.h文件里面声明两个实例变量 { CGPoint _startpoint;//记录点击滑动时的位置 NSMutableArray* _marray;//记录滑动时的位置 } //在.m文件里面 //重写初始化方法 -(id)initWithFrame:(CGRect)frame{ if(self==[super initWithFrame:frame]){ self.backgroundColor=[UIColor lightGrayColor];//设置背景初始化为灰色 _marray=[NSMutableArray new]; } return self; } //触碰开始方法 -(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { UITouch* touch = [touches anyObject];//获取到点击时任意的一个值 _startpoint = [touch locationInView:self];//获取点击时的位置 NSMutableArray *pointArray = [NSMutableArray new];// //转换为对象 NSValue *value = [NSValue valueWithCGPoint:_startpoint]; //将存有点击位置的value存到新建的数组中 [pointArray addObject:value]; [_marray addObject:pointArray]; } //鼠标滑动时的方法 -(void)touchesMoved:(NSSet*)touches withEvent:(UIEvent* )event { //跟开始方法差不多,只是会获取_marray数组最后一个,往里面添加获取到得位置 NSMutableArray *pointArray = [_marray lastObject]; UITouch* touch=[touches anyObject]; CGPoint currentPoint = [touch locationInView:self]; NSValue* value=[NSValue valueWithCGPoint:currentPoint]; [pointArray addObject:value]; //这个方法是和绘画方法呼应 [self setNeedsDisplay];//表示边绘边画 } //鼠标结束时的方法 -(void)touchesEnded:(NSSet*) touches withEvent:(UIEvent*)event { } //绘画方法 -(void)drawRect:(CGRect)rect { CGContextRef cgrf = UIGraphicsGetCurrentContext();//设置笔画 //笔画的粗细 CGContextSetLineWidth(cgrf,2.0f); //笔画的颜色 CGContextSetStrokeColorWithColor(cgrf,[UIColor yellowColor].CGColor); for (NSMutableArray* pointArr in _marray) { for (int i=0; i<pointArr.count-1; i++) { NSValue* value=pointArr[i]; CGPoint apoint=[value CGPointValue]; //将画笔移动到指定的点 CGContextMoveToPoint(cgrf, apoint.x, apoint.y); NSValue* nextvalue=pointArr[i+1]; CGPoint nextapoint=[nextvalue CGPointValue]; // 将画笔从现在的点与给定的点(针对函数的参数而言)之间连线 CGContextAddLineToPoint(cgrf, nextapoint.x, nextapoint.y); } } CGContextStrokePath(cgrf); }
注意在ViewController.m里面实现它
导入#import"Draw.h"
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view=[[Draw alloc]initWithFrame:[UIScreen mainScreen].bounds]; }
本人创建的是Draw,只需要换自定义的文件名就可以
就这样一个简单的画板就完成了
跟复杂的可以在画板上添加控件,换画笔颜色
时间: 2024-12-04 13:09:03