Переупорядочение UITableViewCell: ячейка перестает двигаться на 10 пикселей в перетаскивании - PullRequest
0 голосов
/ 20 января 2012

У меня есть UITableView, который я подключил для редактирования.

При нажатии и удерживании появляется анимация смещения (строка рисуется «над» остальной частью таблицы). Пока все хорошо.

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

Точка останова показывает, что -tableView:moveRowAtIndexPath:toIndexPath: определенно вызывается, хотя с тем же индексным путем, что и строки источника и назначения.

Могут ли какие-нибудь психические отладчики пролить свет на это?

EDIT Немного более актуальной информации:

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

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

Ответы [ 2 ]

2 голосов
/ 11 октября 2012

Возможно, я пришел слишком поздно с решением для вас, но это может быть полезно для других, кто сталкивается с таким же поведением.Ваша проблема вызвана тем, что UILongPressGestureRecognizer мешает длительному нажатию на элемент управления переупорядочением ячейки.Вы можете избежать этого, добавив UILongPressGestureRecognizer к cell.contentView вместо добавления его в ячейку, поскольку элемент управления переупорядочением не находится в содержимом ячейки.

0 голосов
/ 20 января 2012

Когда вы перемещаете ячейку таблицы, вы также перемещаете источник данных?

, например,

NSString* stringToBeMoved = [myArray objectAtIndex:[sourceIndexPath row]];
[stringToBeMoved retain];
[myArray removeObjectAtIndex:[sourceIndexPath row]];
[myArray insertObject:stringToBeMoved atIndex:[destinationIndexPath row]];
[stringToBeMoved release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...