2013-07-22 4 views
0

У меня есть UITableView с ячейками на нем с индикатором раскрытия информации (UITableViewCellAccessoryDetailDisclosureButton).Как я могу получить представление кнопки раскрытия подробностей?

Мне нужно раскрытие кнопки раскрытия детали (чтобы показать какое-то пользовательское всплывающее меню), но оно всегда равно нулю. Зачем?

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{ 
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
[self showMenu: cell.accessoryView]; 
NSLog(@"%@",cell.accessoryView);} 

Как я получаю раскрывающуюся кнопку кнопки UIVIew *? (обратите внимание, что у меня есть кнопки раскрытия информации и событие события срабатывания)

Заранее спасибо!

+0

Как насчет подключения выхода с кнопки раскрытия? –

+0

Таблица не статична, у меня много ячеек по динамическим данным, и у всех из них есть кнопки раскрытия подробностей – Tom

+0

Попробуйте cell.accessoryType; –

ответ

1

Вы можете найти кнопку аксессуара, проверяя клетку подвидов:

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    //[self showMenu: cell.accessoryView]; 
    NSLog(@"%@",cell.accessoryView); 

    NSArray *subviews = [cell subviews]; 

    for (UIView *subview in subviews) { 
     if ([subview isKindOfClass:[UIButton class]]) { 
      NSLog(@"This is that button"); 
     } 
    } 
    NSLog(@"Subviews: %@", subviews); 
} 
+0

И что, если у меня больше кнопок в моей камере? Это действительно способ сделать это? Кажется настолько странным для меня – Tom

+0

@Tom Ну, я думал то же самое, но те кнопки, если они добавлены правильно, должны быть в вашем cell.contentView, а не только как подчиненный самой ячейке. – Eric

+0

Ваш метод возвращает тот же UIButton для каждой ячейки ... с таким же положением (>) – Tom

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