2015-11-14 3 views
0

У меня есть распознаватель двойного нажатия, который загружает функцию, когда строка таблицы двойным нажатием.Функция двойного нажатия накапливается каждый раз, когда загружается таблица.

Таблица загружается на основе данных из другой таблицы. При повторной загрузке данных или выборе другой строки из предыдущей таблицы (и загрузки разных данных) дважды нажмите, чтобы вызвать действие еще раз для каждого нового загружаемого файла.

Так что, в первый раз, я получаю значение 1 один раз. Затем я перезаряжаю данные, и получаю их дважды, и т. Д.

Когда эта функция загружается одним нажатием (in didSelectRowAtIndex), она ведет себя нормально.

Кажется, что функция двойного нажатия скапливается каждый раз, когда таблица перезагружается.

func doubleTap(recognizer: UITapGestureRecognizer) { 

    cDLargeContent.tableSwitchMethod() 
    print(cDLargeContent.showQTable) 

} 

sample code 1

sample code 2

+0

Как и где добавлен распознаватель жестов? – vacawama

+0

Выяснил это и поставил ответ. Спасибо за возможную помощь - звучит так, как будто вы были справа (указательный) путь. – Walter

ответ

0

Вот ответ в случае, если кто ищет:

Сначала я пытался ставить "addGestureRecognizer" в ViewDidLoad, но потом оказывается, что я на самом деле нужно сохраните распознаватель жестов в области cellForRowAtIndexPath - если я этого не сделаю, он сделает всю таблицу доступной, а не только строки. Наличие распознавателя жестов в cellForRowAtIndexPath вызвало его накопление при каждой загрузке таблицы.

Таким образом, я загрузил didEndDisplayingCell, и я положил cell.removeGestureRecognizer (doubleTap) внутри. Таким образом, когда таблица перезагружается, существующие ячейки удаляют двойной кран, прежде чем добавлять его в новые ячейки.