From a839ffef447061b96d84e9bdfe25dbee44c1c4d8 Mon Sep 17 00:00:00 2001 From: Suzuki Masami Date: Tue, 31 Jul 2018 15:56:34 +0900 Subject: [PATCH] Avoid that didSelectedRowAtIndexPath of UITableView does not respond the second time when tapping the same Cell --- SWTableViewCell/PodFiles/SWTableViewCell.h | 1 + SWTableViewCell/PodFiles/SWTableViewCell.m | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/SWTableViewCell/PodFiles/SWTableViewCell.h b/SWTableViewCell/PodFiles/SWTableViewCell.h index 10d9fab..b7c3035 100644 --- a/SWTableViewCell/PodFiles/SWTableViewCell.h +++ b/SWTableViewCell/PodFiles/SWTableViewCell.h @@ -32,6 +32,7 @@ typedef NS_ENUM(NSInteger, SWCellState) - (BOOL)swipeableTableViewCell:(SWTableViewCell *)cell canSwipeToState:(SWCellState)state; - (void)swipeableTableViewCellDidEndScrolling:(SWTableViewCell *)cell; - (void)swipeableTableViewCell:(SWTableViewCell *)cell didScroll:(UIScrollView *)scrollView; +- (void)swipeableTableViewCellDidSelected:(SWTableViewCell *)cell; @end diff --git a/SWTableViewCell/PodFiles/SWTableViewCell.m b/SWTableViewCell/PodFiles/SWTableViewCell.m index 3daceac..ff6fdf7 100644 --- a/SWTableViewCell/PodFiles/SWTableViewCell.m +++ b/SWTableViewCell/PodFiles/SWTableViewCell.m @@ -176,6 +176,17 @@ - (void)initializer [NSLayoutConstraint constraintWithItem:buttonView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self.contentView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:-kUtilityButtonWidthDefault], ]]; } + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapedInsideCell)]; + tap.cancelsTouchesInView = NO; + [self.cellScrollView addGestureRecognizer:tap]; +} + +- (void) tapedInsideCell +{ + if ( _cellState == kCellStateCenter) { + [ _delegate swipeableTableViewCellDidSelected:self]; + } } static NSString * const kTableViewPanState = @"state";