#import "ViewController.h" @interface Viewcontroller () <uitableviewdatasource,uitableviewdelegate, Uigesturerecognizerdelegate> @end @implementation viewcontroller-(void) viewdidload {[Super viewdidload]; UIView * v = [[UIView alloc] Initwithframe:cgrectmake (20, 20, 280, 100)]; V.backgroundcolor = [Uicolor Redcolor]; [Self.view Addsubview:v]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initwithtarget:self action: @selector (Viewclick:)]; Tap.delegate = self; [v Addgesturerecognizer:tap]; UITableView *tableview = [[UITableView alloc] Initwithframe:cgrectmake (0, 0, 280, 100)]; Tableview.delegate = self; Tableview.datasource = self; [v Addsubview:tableview];} -(void) Viewclick: (uitapgesturerecognizer*) tap{NSLog (@ "click View"); -(Nsinteger) Numberofsectionsintableview: (UITableView *) tableview{return 1;} -(Nsinteger) TableView: (UITableView *) TableView numberofrowsinsection: (Nsinteger) section{return 1;} -(UITableViewCell *) tAbleview: (UITableView *) TableView Cellforrowatindexpath: (Nsindexpath *) indexpath{UITableViewCell * cell = [UITableVie Wcell new]; Cell.textLabel.text = @ "Test"; return cell;} -(void) TableView: (UITableView *) TableView Didselectrowatindexpath: (Nsindexpath *) indexpath{NSLog (@ "click cell");} #pragma mark-uigesturerecognizerdelegate-(BOOL) Gesturerecognizer: (Uigesturerecognizer *) Gesturerecognizer Shouldreceivetouch: (Uitouch *) touch{//If Uitableviewcellcontentview (that is, click on Tableviewcell), do not intercept the touch event if ([NSSTRINGFR Omclass ([Touch.view class]) isequaltostring:@ "Uitableviewcellcontentview"]) {return NO; } return YES; -(void) didreceivememorywarning {[Super didreceivememorywarning]; Dispose of any resources the can be recreated.} @end
The solution is to add gesture to the proxy rewrite- (BOOL) Gesturerecognizer: (Uigesturerecognizer*) Gesturerecognizer Shouldreceivetouch: (Uitouch*) Touch function
Here is the code
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
UIView add gesture and then UITableView add this view to cause UITableView cell Click event Invalid