1.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
2.
3.    UITouch *touch = [touches anyObject];
4.    CGPoint point = [touch locationInView:self];
5.    start = point;
6.    end = point;
7.
8.}
9.
10.-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
11.
12.    UITouch *touch = [touches anyObject];
13.    CGPoint point = [touch locationInView:self];
14.    end = point;
15.
16.    [self setNeedsDisplay];
17.}
18.
19.-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
20.
21.    UITouch *touch = [touches anyObject];
22.    CGPoint point = [touch locationInView:self];
23.    end = point;
24.
25.    [self setNeedsDisplay];
26.
27.
28.}
29.
1.#import "myView.h"
2.
3.@interface myView ()
4.{
5.    CGPoint start;
6.    CGPoint end;
7.}
8.@end
9.
10.
11.@implementation myView
12.
13.-(instancetype)initWithFrame:(CGRect)frame{
14.    if (self = [super initWithFrame:frame]) {
15.        self.backgroundColor = [UIColor whiteColor];
16.    }
17.    return self;
18.}
19.
20.
21.
22.-(void)drawRect:(CGRect)rect{
23.
24.    if (start.x != end.x && start.y != end.y) {
25.
26.        CGFloat w = fabs(end.x - start.x);
27.        CGFloat h = fabs(end.y - start.y);
28.
29.        CGFloat x = end.x < start.x ? end.x : start.x;
30.        CGFloat y = end.y < start.y ? end.y : start.y;
31.
32.        //画圆
33.        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:
34.                              CGRectMake(x, y, w, h)];
35.
36.        //画方
37.//        UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(x, y, w, h)];
38.
39.        [[UIColor redColor] setStroke];
40.        [path stroke];
41.    }
42.
43.}
44.
45.-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
46.
47.    UITouch *touch = [touches anyObject];
48.    CGPoint point = [touch locationInView:self];
49.    start = point;
50.    end = point;
51.
52.}
53.
54.-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
55.
56.    UITouch *touch = [touches anyObject];
57.    CGPoint point = [touch locationInView:self];
58.    end = point;
59.
60.    [self setNeedsDisplay];
61.}
62.
63.-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
64.
65.    UITouch *touch = [touches anyObject];
66.    CGPoint point = [touch locationInView:self];
67.    end = point;
68.
69.    [self setNeedsDisplay];
70.
71.
72.}
73.
74.
75.
76.
77.@end
78.
原文:http://www.cnblogs.com/buakaw/p/5208370.html