Когда я касаюсь кнопки внутри таблицы, она автоматически переходит к методу TabGesture, но мне нужен метод нажатия кнопки?

В настоящее время я работаю с простым приложением для iPhone, используя UITableview для ввода поля типа Emp_Name, Emp_Salary и т. Д. И используя UIButton для установки изображения, подобного флажку, и установки цели и выполнения селектора. Когда я касаюсь кнопки флажка, он автоматически переходит к методу UITabGesture но не входит в метод нажатия кнопки. как исправить это, пожалуйста, помогите мне

Я попробовал исходный код:

- (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setNumberOfTouchesRequired:1]; recognizer.cancelsTouchesInView = NO; [[self view] addGestureRecognizer:recognizer]; [recognizer release]; } -(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer // TabGesture method { NSLog(@"Tab received."); } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; cell.selectionStyle = UITableViewCellSelectionStyleNone; if (indexPath.section == 0 && indexPath.row == 0) { perlessonCheckButton = [UIButton buttonWithType:UIButtonTypeCustom]; perlessonCheckButton.frame = CGRectMake(5, 5, 30, 30); [perlessonCheckButton setImage:[UIImage imageNamed:@"tickAltered1.png"] forState:UIControlStateNormal]; [perlessonCheckButton addTarget:self action:@selector(showPerLessonOptions) forControlEvents:UIControlEventTouchUpInside]; [perlessonCheckButton setBackgroundColor:[UIColor lightTextColor]]; [perlessonCheckButton setUserInteractionEnabled:NO]; [cell.contentView addSubview:perlessonCheckButton]; } } -(void) showPerLessonOptions // Button method { [perlessonCheckButton setUserInteractionEnabled:NO]; [flatFeeCheckButton setUserInteractionEnabled:YES]; [perlessonCheckButton setImage:[UIImage imageNamed:@"tickAltered1.png"] forState:UIControlStateNormal]; [flatFeeCheckButton setImage:[UIImage imageNamed:@"untickAltered1.png"] forState:UIControlStateNormal]; } 

 -(void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer { CGPoint tapLocation = [gestureRecognizer locationInView:self.view]; if(CGRectContainsPoint(yourButton.frame, tapLocation)) { [self showPerLessonOptions]; } } 

Я думаю, проблема в этой линии,

 [perlessonCheckButton setUserInteractionEnabled:NO]; 

Вышеприведенная строка отключает взаимодействие пользователя. Измените его,

 [perlessonCheckButton setUserInteractionEnabled:YES]; 

Если вышеуказанный метод не работает, вы можете добавить распознаватель жестов к своей кнопке.

 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showPerLessonOptions:)]; [perlessonCheckButton addGestureRecognizer:tap]; [perlessonCheckButton setUserInteractionEnabled:YES]; 

Подробнее о UITapGestureRecognizer