Разделы - это не фактические объекты в таблице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 выше которой будет вызвано долгой печатью.
Я также нашел похожие ответы, подобные тем, которые вы опубликовали. К сожалению, это не работает (больше). Ячейка также, похоже, не имеет никакого «UIScrollView» в подзаголовках. –
@HennyLee Да, я не был уверен, что он все еще используется или нет. Проверьте мое обновленное сообщение для другого предложения. –