2017-02-01 3 views
0

У меня была аналогичная проблема раньше, но на этот раз решение проблемы продолжает ускользать от меня.Кнопка в динамическом Tableviewcell недоступна

Таким образом, я сделал динамический планшет с ячейками прототипа и поместил кнопки (серые фоновые изображения с синими буквами - это кнопки). tableview

Проблема в том, что кнопки не могут быть изменены после запуска тренажера. Я несколько раз проверял, что проблема не связана с isUserEnabled, и не связана с порядком подпунктов (кнопки являются наивысшими в иерархии, когда я проверял с помощью 3D-отладчика).

Я предполагаю, что проблема может возникнуть из-за того, что это динамическая ячейка, но мне кажется странным, что текстовое поле «Мастерство добавления» отвечает на мои прикосновения, хотя кнопки этого не делают.

Что может быть источником проблемы?

спасибо.

+0

Вы проверили ваши соединения розетки или селекторы для кнопки? –

+0

Как вы проверяете, нажаты ли кнопки или нет? – Adeel

ответ

2

Перед iOS6

UITableViewCell> 
    | <UITableViewCellContentView> 
    | | <UILabel> 

После iOS7

<UITableViewCell> 
    | <UITableViewCellScrollView> 
    | | <UITableViewCellContentView> 
    | | | <UILabel> 

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

Добавьте действие кнопки динамически следующим образом:

cell.btn.tag = indexPath.row 
cell.btn.addTarget(self, action: #selector(MainVC.buttonAction), for: UIControlEvents.touchUpInside) 
+0

Благодарим вас за предложение. Я попробую и вернусь к тебе. Хотя у меня есть вопрос, почему мне нужно добавить динамическое действие кнопки? Я также считаю, что это может быть решением моей проблемы, но мне интересно, почему это будет работать при использовании раскадровки, чтобы добавить IBAction, не работает. – Daniel

+0

Ваше предложение работало, кстати. Спасибо за помощь :) – Daniel

+0

@ Daniel По умолчанию в представлении таблицы есть событие касания. Все элементы ячейки распознаются прикосновением ячейки. Поэтому, если вы используете кнопку в ячейке, вам нужно указать событие касания. –

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