2016-08-25 3 views
0

Я пытаюсь выяснить, как отладить следующий сценарий, чтобы понять, почему ячейки UITableView не будут переупорядочиваться.UITableView переупорядочивание ячейки перетаскивания неожиданно останавливается

  1. Коснитесь пункта меню «Редактировать», чтобы поместить представление таблицы в режим редактирования.
  2. Режим редактирования работает для удаления ячеек.
  3. Попробуйте изменить порядок ячеек, коснувшись и перетаскивая элемент управления повторным заказом на ячейку.
  4. Контур ячейки перемещается в направлении перетаскивания на пару пикселей, но затем снова возвращается в исходное положение, даже через мой палец по-прежнему перемещается по экрану.

В коде:

  • UITableViewDelegate: targetIndexPathForMoveFromRowAtIndexPath никогда не вызывается. Это, похоже, согласуется с отзывами пользовательского интерфейса, когда ячейка привязывается к исходной позиции до того, как она когда-либо попадет поверх другой ячейки.
  • UITableViewDataSource: canMoveRowAtIndexPath возвращает true для всех строк.
  • UITableViewDataSource: moveRowAtIndexPath всегда вызывается, как только ячейка возвращается в исходное положение, а значения sourceIndexPath и destinationIndexPath совпадают. -

Тот же код контроллера и раскадровка контроллера корректно работают для переупорядочения ячеек в другом проекте.

Я искал stackoverflow и Google в течение дня и не могу найти ссылку на то, что приведет к тому, что событие перетаскивания ячейки будет отменено.

Любые мысли о том, как я мог бы подходить к отладке этой проблемы, были бы очень благодарны!

+0

нужно больше, код вашего TableViewController – Dmitry

ответ

1

Я нашел ответ, и это не имело никакого отношения к коду UITableView.

В моем коде есть программно созданный контроллер корневого представления, который обрабатывает отображение/скрытие скользящей панели меню.

Контроллер вида ViewDidLoad() создает panGestureRecognizer для отслеживания прокрутки для отображения/скрытия скользящего меню. Этот panGestureRecognizer не проходил через штрихи.

Добавление этого кода исправлена ​​проблема:

panGestureRecognizer.cancelsTouchesInView = false 
Смежные вопросы