CODE
У меня есть код, который добавляет распознаватель жестов UILongPressGestureRecognizer
с именем _recognizer
к подклассу UITableViewCell
с именем cell
:
...
UILongPressGestureRecognizer *_recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellLongPressRecognized:)];
_recognizer.allowableMovement = 20;
_recognizer.minimumPressDuration = 1.0f;
[[cell contentView] addGestureRecognizer:_recognizer];
[_recognizer release];
...
Селектор -cellLongPressRecognized:
просто записывает в журнал, когда жест заканчивается:
- (void) cellLongPressRecognized:(id)_sender {
if (((UILongPressGestureRecognizer *)_sender).state == UIGestureRecognizerStateEnded)
ALog(@"[MyViewController] -cellLongPressRecognized: gesture ended...");
}
Моя консоль отображает одно сообщение журнала, когда я нажимаю, удерживаю и освобождаю ячейку:
[MyViewController] -cellLongPressRecognized: gesture ended...
Пока все хорошо.
ISSUE
Проблема в том, что фон ячейки таблицы остается выбранным только в течение 1,0 секунды, свойство _recognizer.minimumPressDuration
.
Если я удерживаю палец на устройстве дольше 1,0 секунды, фон ячейки переходит от стиля выбора UITableViewCellSelectionStyleBlue
к обычному непрозрачному невыбранному фону.
ДляУбедитесь, что в этой проблеме используется только код, относящийся к конкретным жестам. Я отключил -tableView:didSelectRowAtIndexPath:
во время тестирования.
ВОПРОС
Как сохранить фон выбранным на неопределенный срок,переворачивается только тогда, когда жест "длинного нажатия" заканчивается?