Вопрос и объяснение ситуации
Привет, у меня есть пользовательский вид коллекции, в котором я делаю каждую ячейку коллекции размером с экран и прокручиваю ее по горизонтали, чтобы получить эффект пейджинга.
В каждой ячейке viewview у меня есть таблица, которая также занимает весь размер этой ячейки collectionview. Я пытаюсь реализовать конечное и ведущее действие прокрутки в моей ячейке таблицы, но оно игнорируется из-за жеста прокрутки для прокрутки ячеек коллекции.
Есть ли способ, например, настроить ячейку просмотра коллекции так, чтобы она отслеживала только изображения, находящиеся рядом с краем экрана, а затем прокручивала вид коллекции, в противном случае вместо этого панорамирование будет просто отправлено в представление таблицы?
Альтернативное решение (временное решение)
Хотя я нашел обходной путь, но мне все еще очень интересно узнать, возможно ли то, что я пытаюсь сделать выше, так что, если вы знаете, пожалуйста, оставьте свой ответ
Так что после поиска и поиска в стеке потока, похоже, есть другие люди с такой же проблемой, как у меня, но, похоже, не может найти ответ. Таким образом, у меня возникла другая идея, и я хотел бы поделиться, чтобы, если кто-то сталкивался с этой проблемой, у него был выбор на выбор.
Моя идея заключается в добавлении регулятора жестов длинным нажатием для просмотра таблицы, которого вы можете достичь, как описано в swift 4
func setupLongPressGesture() {
let longPressGesture: UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(self.handleLongPress))
longPressGesture.minimumPressDuration = 1.0 // 1 second press
longPressGesture.delegate = self
dataDisplayTable.addGestureRecognizer(longPressGesture)
}
@objc func handleLongPress(_ gestureRecognizer: UILongPressGestureRecognizer){
if gestureRecognizer.state == .began {
let touchPoint = gestureRecognizer.location(in: dataDisplayTable)
if let indexPath = dataDisplayTable.indexPathForRow(at: touchPoint) {
// let cell = dataDisplayTable.cellForRow(at: indexPath) - use this to retreive the cell at the above indexPath to do something with it
// print(cell?.reuseIdentifier) - use this to retreive the cell identifier and do something with it
}
}
}
Затем добавьте это в свой viewDidLoad ()
setupLongPressGesture()