2013-11-11 3 views
1

Когда я нажимаю на ячейку, didSelectRowAtIndexPath не получает вызов. Когда я нажимаю и удерживаю ячейку, она выделяет ячейку, но как только я отдергиваю палец, подсветка исчезнет. И когда я нажимаю двумя пальцами - один палец на одну ячейку, один палец на другую ячейку - THEN didSelectRowAtIndexPath, наконец, вызывается и одна ячейка остается подсвеченной.didSelectRowAtIndexPath не получилось вызвано

Я удалил весь свой код таблицы со списком таблиц и превратил его в полностью общую таблицу с запасом UITableViewCell. Все та же проблема.

Да, источник данных и делегат установлены. Нет, нет каких-либо странных методов делегирования, вызывающих deselectRowAtIndexPath.

Вот код таблицы.

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 75.0f, self.view.frame.size.width, self.view.frame.size.height - 75.0f) style:UITableViewStylePlain]; 
[self.view addSubview:self.tableView]; 

self.tableView.dataSource = self; 
self.tableView.delegate = self; 
self.tableView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
self.tableView.allowsSelection = YES; 
self.tableView.separatorColor = [UIColor clearColor]; 
self.tableView.backgroundColor = _backgroundColor; 

И вот код, который я разделил на ячейку.

static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 

cell.textLabel.text = @"Hello!"; 

return cell; 

Я прошел через все didSelectRowAtIndexPath дискуссий на здесь и испробовал все рекомендуемые решения. И я не могу найти никого, упоминающего проблему, которую я вижу здесь, где didSelectRowAtIndexPath НАЗЫВАЕТСЯ, это просто очень прерывисто или вам нужно использовать сразу два пальца.

+1

Можете ли вы поделиться своей реализацией cellForRowAtIndexPath ?? –

+0

См. Редактирование. Я все это довел до минимума, все еще видел ту же проблему. – bmueller

+0

Я проверю ваш код, он работает. Я не получаю вашу проблему. –

ответ

0

Убедитесь, что метод

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    } 

В контроллере представления в .h

@interface YourViewController : UIViewController<UITableViewDelegate> 
+0

Да для обоих. – bmueller

+0

@bmueller: тогда вы должны добавить полный код cellForRow для этого ответа –

Смежные вопросы