//
// SCHView.m
// touchSCHEvent
//
// Created by tianshangrenjian on 15/6/29.
// Copyright (c) 2015年 tianshangrenjian. All rights reserved.
//
#import "SCHView.h"
@interface SCHView()
@property (strong , nonatomic) NSMutableArray *points;
@end
@implementation SCHView
- (NSMutableArray*) points
{
if (_points==nil) {
_points=[[NSMutableArray alloc] init];
}
return _points;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
CGContextRef ctx=UIGraphicsGetCurrentContext();
for (int i=0; i<self.points.count; i++) {
CGPoint point=[self.points[i] CGPointValue];
if (i==0) {
CGContextMoveToPoint(ctx, point.x, point.y);
}
else
{
CGContextAddLineToPoint(ctx, point.x, point.y);
}
}
[[UIColor blueColor] set];
CGContextSetLineWidth(ctx, 20);
CGContextSetLineJoin(ctx, kCGLineCapSquare);//设置线条拐角
CGContextSetLineCap(ctx, kCGLineCapRound);//设置连接线的样式
// CGContextMoveToPoint(ctx, 10, 10);
// CGContextAddLineToPoint(ctx, 80, 50);
CGContextStrokePath(ctx);
}
/*
鼠标在其上点击时触发的事件
*/
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch=[touches anyObject];
CGPoint p=[touch locationInView:touch.view];
[self.points addObject:[NSValue valueWithCGPoint:p]];//结构体转换为对象
NSLog(@"%zd",touches.count);
NSLog(@" 鼠标在其上点击时触发的事件");
[self setNeedsDisplay];
}
/*
鼠标在其上移动时触发的事件
*/
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch=[touches anyObject];
CGPoint point=[touch previousLocationInView:touch.view];
[self.points addObject:[NSValue valueWithCGPoint:point]];
[self setNeedsDisplay];
// NSLog(@"鼠标在其上移动时触发的事件");
// UITouch *touch=[touches anyObject];
// CGPoint prevPoint=[touch previousLocationInView:touch.view];
// CGPoint currentPoint=[touch locationInView:touch.view];
//
// CGPoint centerPoint=touch.view.center;
//
// centerPoint.x+=currentPoint.x- prevPoint.x;
// centerPoint.y+=currentPoint.y- prevPoint.y;
//
// // touch.view.center=currentPoint;
//
// touch.view.center=centerPoint;
}
/*
鼠标在离开其上的时触发的事件
*/
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"鼠标在离开其上的时触发的事件");
UITouch *touch=[touches anyObject];
[self.points addObject:[NSValue valueWithCGPoint:[touch previousLocationInView:touch.view]]];
[self setNeedsDisplay];
}
@end