2016-12-31 5 views
0

Я отключил delaysContentTouches в моем Tableview подкласса с помощью:Добавить пользовательскую задержку распознавателя

delaysContentTouches = false 
subviews.forEach { ($0 as? UIScrollView)?.delaysContentTouches = false } 

Но в одном из своих разделов, я все еще хочу, чтобы сохранить задержку. Есть ли способ отменить задержку для определенных разделов или, возможно, я могу добавить пользовательскую задержку распознавателя в раздел?

ответ

0

Разделы - это не фактические объекты в таблицеView, поэтому мой ответ на ваш первый вопрос - нет. .delaysContentTouches применяется ко всему tableView.

Для вашего второго запроса я считаю, что одним из способов, которым это может быть возможно, является установка задержки для подсмотра прокрутки требуемых ячеек. В вашем Tableview (cellForRowAt: indexPath) FUNC, вы могли бы иметь что-то вроде этого:

if indexPath.section == 3 { //or whatever your desired section is 
    for view in cell.subviews { 
     if view is UIScrollView { 
      let currentView = view as! UIScrollView 
      currentView.delaysContentTouches = true 
     } 
    } 
} 

Найдет UIScrollView в подобозрения свой мобильный в нужной секции. Затем он установит свойство .delaysContentTouches.

Я лично не выполнил этот код, просто исследовал его, поэтому дайте мне знать, если он работает.

Редактировать

Видимо UIScrollView в UITableViewCell устарел, поэтому описанный выше метод не будет работать больше.

Следующее мое лучшее предложение для вас - использовать UILongPressGuestureRecognizer. Это не совсем то же самое, что откладывать прикосновение, но может иметь аналогичный эффект в реальном исполнении.

Вы можете использовать его в том же Tableview (cellForRowAt: indexPath) FUNC, как так:

let press = UILongPressGestureRecognizer(target: self, action: #selector(handlePress)) 
press.minimumPressDuration = 2.0 //however long you want 
cell.addGestureRecognizer(press) 

Все, что вы пытаетесь достичь, выбрав определенные строки вашего Tableview могут быть помещены в handlePress FUNC выше которой будет вызвано долгой печатью.

+0

Я также нашел похожие ответы, подобные тем, которые вы опубликовали. К сожалению, это не работает (больше). Ячейка также, похоже, не имеет никакого «UIScrollView» в подзаголовках. –

+0

@HennyLee Да, я не был уверен, что он все еще используется или нет. Проверьте мое обновленное сообщение для другого предложения. –

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