diff --git a/JMWhenTapped/UIView+WhenTappedBlocks.h b/JMWhenTapped/UIView+WhenTappedBlocks.h index 5fe016c..8d79542 100644 --- a/JMWhenTapped/UIView+WhenTappedBlocks.h +++ b/JMWhenTapped/UIView+WhenTappedBlocks.h @@ -18,6 +18,7 @@ typedef void (^JMWhenTappedBlock)(); - (void)whenTwoFingerTapped:(JMWhenTappedBlock)block; - (void)whenTouchedDown:(JMWhenTappedBlock)block; - (void)whenTouchedUp:(JMWhenTappedBlock)block; +- (void)whenTapCanceled:(JMWhenTappedBlock)block; @end diff --git a/JMWhenTapped/UIView+WhenTappedBlocks.m b/JMWhenTapped/UIView+WhenTappedBlocks.m index 4f5d67a..47f40e6 100644 --- a/JMWhenTapped/UIView+WhenTappedBlocks.m +++ b/JMWhenTapped/UIView+WhenTappedBlocks.m @@ -28,6 +28,7 @@ @implementation UIView (JMWhenTappedBlocks) static char kWhenTwoFingerTappedBlockKey; static char kWhenTouchedDownBlockKey; static char kWhenTouchedUpBlockKey; +static char kWhenTapCanceledKey; #pragma mark - #pragma mark Set blocks @@ -73,6 +74,10 @@ - (void)whenTouchedUp:(JMWhenTappedBlock)block { [self setBlock:block forKey:&kWhenTouchedUpBlockKey]; } +- (void)whenTapCanceled:(JMWhenTappedBlock)block { + [self setBlock:block forKey:&kWhenTapCanceledKey]; +} + #pragma mark - #pragma mark Callbacks @@ -93,6 +98,11 @@ - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self runBlockForKey:&kWhenTouchedDownBlockKey]; } +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { + [super touchesCancelled:touches withEvent:event]; + [self runBlockForKey:&kWhenTapCanceledKey]; +} + - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesEnded:touches withEvent:event]; [self runBlockForKey:&kWhenTouchedUpBlockKey]; diff --git a/JMWhenTappedDemo/JMWhenTappedDemo/DemoViewController.m b/JMWhenTappedDemo/JMWhenTappedDemo/DemoViewController.m index dfe9d03..10bcfb5 100644 --- a/JMWhenTappedDemo/JMWhenTappedDemo/DemoViewController.m +++ b/JMWhenTappedDemo/JMWhenTappedDemo/DemoViewController.m @@ -77,6 +77,10 @@ - (void) loadView { otherButtonTitles:nil]; [a show]; }]; + + [self.view2 whenTapCanceled:^{ + NSLog(@" tap canceled "); + }]; }