У меня есть tableView, в котором некоторые ячейки имеют UICollectionView
(для горизонтальных каруселей). Он отлично работает для каждой ячейки, кроме той, в которой tableView нельзя прокручивать (ни в симуляторе, ни на устройстве). Точнее, прокрутка возможна, если касание происходит на UICollectionViewCell
, но не на той части UITableViewCell
, которая не содержит UICollectionVIew
.
Я бы хотел выяснить, почему это так, но я не уверен, как отладить это. Есть ли точка останова, возможно, символическая точка останова, которую я могу установить, чтобы понять, где происходят события касания?
Я попытался напечатать материал в этих 3 методах (из самой ячейки), чтобы увидеть, как и когда они были вызваны, но там не вызваны.
override func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool
override func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
Я не уверен, что почтовый код имеет значение. Это сложный вид с множеством частей. Я бы предпочел любую технику отладки, которая была бы полезна в этой ситуации.
Большое спасибо!
EDIT
Вот еще точность:
Нет других жестов, кроме как у UITableView
и UICollectionView
.
Моя иерархия представлений выглядит следующим образом:
|--- UITableViewCell --------------|
|-|---cell's content view -------|-|
|-|-|---container view --------|-|-|
|-|-|-|---labels ------------|-|-|-|
|-|-|-|---collection view ---|-|-|-|
|-|-|-|----------------------|-|-|-|
|----------------------------------|
Вид контейнера внутри представления содержимого ячейки имеет свое назначение. Но я чувствую, что именно это представление блокирует жесты прокрутки.
Кроме isUserInteractionEnable = true
, есть ли что-нибудь еще, что могло бы блокировать события жестов, чтобы подняться в суперпредставления? К этому виду контейнера не прикреплены никакие жесты.