总结:
1、在iTouch4上运行检测到的触摸点数最大是5,即只允许5个手指在屏幕上滑动
2、视图支持多点触摸:isMultipleTouchEnabled返回YES,或者设置 multipleTouchEnabled属性为YES
3、要将多个CGPoint点添加到NSMutableArray,使用 NSStringFromCGPoint 函数,使用 CGPointFromString 从数组中取出坐标
TouchesView.h
#import <UIKit/UIKit.h>
@interface TouchesView : UIView {
NSMutableArray* _points;
}
- (void)showPoints:(NSSet *)touches;
@end
TouchesView.m
#import "TouchesView.h"
@implementation TouchesView
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
_points = [[NSMutableArray alloc] init];
return self;
}
- (void)dealloc
{
[_points release];
[super dealloc];
}
- (BOOL)isMultipleTouchEnabled
{
return YES;
}
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
for (NSString* ptstr in _points) {
CGPoint pt = CGPointFromString(ptstr);
CGContextStrokeEllipseInRect(context, CGRectMake(pt.x - 40, pt.y - 40, 80, 80));
}
}
- (void)showPoints:(NSSet *)touches
{
[_points removeAllObjects];
for (UITouch* touch in touches) {
CGPoint pt = [touch locationInView:self];
[_points addObject: NSStringFromCGPoint(pt)];
}
NSLog(@"Touches count: %d", touches.count);
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
assert(_points != Nil);
[self showPoints: touches];
[self setNeedsDisplay];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
[self showPoints: touches];
[self setNeedsDisplay];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
//[_points removeAllObjects];
[self setNeedsDisplay];
}
@end