======模拟单击双击==========
#import "TouchView.h"
@implementation TouchView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// 开启触摸响应,默认是yes
self.userInteractionEnabled = YES;
// 开启多点触摸,默认NO;
self.multipleTouchEnabled = YES;
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// NSLog(@"touchesBegan");
//--------------------模拟单击、双击----------------------
UITouch *touch = [touches anyObject];
NSUInteger tapCount = touch.tapCount;
// NSLog(@"tapCount----%d", tapCount);
//延迟调用单击事件;这样就能区别单击和双击事件;
//取消某个延迟调用方法;
//延迟调用方法怎么取消的:延迟调用被加到runloop中,当我们调用取消方法时,runloop就会取消调用延迟加载;
if (tapCount == 1)
{
[self performSelector:@selector(singleTap) withObject:nil afterDelay:0.5];
}
else if (tapCount == 2)
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTap) object:nil];
[self doubleTap];
}
CGPoint point = [touch locationInView:self];
NSLog(@"%@", NSStringFromCGPoint(point));
}
/*
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touchesMoved");
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touchesEnded");
}*/
- (void)singleTap
{
NSLog(@"单击");
}
- (void)doubleTap
{
NSLog(@"双击");
}
@end
======模拟移动==========
#import "TouchView.h"
@interface TouchView ()
{
UIView *movieView;
}
@end
@implementation TouchView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// 开启触摸响应,默认是yes
self.userInteractionEnabled = YES;
// 开启多点触摸,默认NO;
self.multipleTouchEnabled = YES;
movieView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
movieView.backgroundColor = [UIColor redColor];
[self addSubview:movieView];
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// NSLog(@"touchesBegan");
//--------------------模拟单击、双击----------------------
UITouch *touch = [touches anyObject];
NSUInteger tapCount = touch.tapCount;
// NSLog(@"tapCount----%d", tapCount);
//延迟调用单击事件;这样就能区别单击和双击事件;
//取消某个延迟调用方法;
//延迟调用方法怎么取消的:延迟调用被加到runloop中,当我们调用取消方法时,runloop就会取消调用延迟加载;
if (tapCount == 1)
{
[self performSelector:@selector(singleTap) withObject:nil afterDelay:0.5];
}
else if (tapCount == 2)
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTap) object:nil];
[self doubleTap];
}
CGPoint point = [touch locationInView:self];
NSLog(@"%@", NSStringFromCGPoint(point));
}
// UIView鼠标跟随
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
// NSLog(@"touchesMoved");
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
CGRect frame = movieView.frame;
frame.origin = point;
movieView.frame = frame;
}
/*
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"touchesEnded");
}*/
- (void)singleTap
{
NSLog(@"单击");
}
- (void)doubleTap
{
NSLog(@"双击");
}
@end