Цель C: Метод UITable "didSelectRowAtIndexPath" не работает, если метка добавлена ​​в ячейку - PullRequest
0 голосов
/ 26 июля 2011

В моей реализации мне пришлось добавить пользовательскую метку в ячейку. Однако я понимаю, что при этом область ячейки, которая покрыта пользовательской меткой, не будет реагировать на «щелчок» пользователя и, следовательно, не будет вызывать метод didSelectRowAtIndexPath.

CustomOHAttributLabel *questionLabel = [[CustomOHAttributLabel alloc]initWithFrame:CGRectMake(10, (60-labelHeight)/2, 280, labelHeight)];        

[cell.contentView addSubview:questionLabel];

Есть ли способ, чтобы вся область ячейки реагировала на прикосновения пользователя даже после добавления к ней пользовательской метки?

1 Ответ

2 голосов
/ 26 июля 2011

Сделайте пользовательскую кнопку и поместите ее поверх вызова lavel и onClick одного и того же кода, см.

CustomOHAttributLabel *questionLabel = [[CustomOHAttributLabel alloc]initWithFrame:CGRectMake(10, (60-labelHeight)/2, 280, labelHeight)];

UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame=CGRectMake(10, (60-labelHeight)/2, 280, labelHeight);
    [btn addTarget:self action:@selector(doSomeThing) forControlEvents:UIControlEventTouchUpInside];

[cell.contentView addSubview:questionLabel];
[cell.contentView addSubview:btn];



-(void)doSomeThing
{
  //write code which you write in didSelectRowAtIndexPath method
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   [self doSomeThing];
}
...