Невозможно изменить порядок строк в UITableView

Я столкнулся с проблемой при попытке изменить порядок строк в UITableView . У меня есть функция tableView:moveRowAtIndexPath:toIndexPath: triggered, но fromIndexPath равно toIndexPath (т.е. source == destination). Я видел такую ​​же проблему здесь: re-order uitableview не будет работать, источник всегда равен месту назначения. Но решением было – использовать другую библиотеку. Для меня это не вариант.

 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { //fromIndexPath is equal to toIndexPath, so nothing is exchaned [self.table_data exchangeObjectAtIndex:fromIndexPath.row withObjectAtIndex:toIndexPath.row]; } 

Моя таблица находится в редактируемом режиме, у меня есть canMoveRowAtIndexPath: возврат YES . Мое это не помогает. Как так? Что я делаю не так?

Проблема была в пользовательском распознавании жеста. Это как-то противоречило правилам перетаскивания строк

Установка myGestureRecognizer.cancelsTouchesInView = NO; исправлена ​​проблема

Попробуй это. Оно работает.

 - (void)viewDidLoad { [super viewDidLoad]; arr = [NSMutableArray arrayWithObjects:@"First",@"Second",@"Third",@"Fourth", nil]; self.tableView.editing = YES; } #pragma mark - Table view data source - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { // Return the number of rows in the section. return arr.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier" forIndexPath:indexPath]; UILabel *label = (UILabel *)[cell.contentView viewWithTag:100]; [label setText:[arr objectAtIndex:indexPath.row]]; return cell; } - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { NSString *stringToMove = arr[sourceIndexPath.row]; [arr removeObjectAtIndex:sourceIndexPath.row]; [arr insertObject:stringToMove atIndex:destinationIndexPath.row]; } 

Проверьте скриншот –

введите описание изображения здесь

введите описание изображения здесь

  • UITableViewCell - Обновление значений NSMutableDictionary
  • Что такое файл заголовка для AFImageRequestOperation в AFNetworking 2.0
  • Есть ли способ загружать места из фона часто с помощью 3G / 4G / LTE?
  • Отключите линии разделителя между конкретными UITableViewCells в UITableView
  • Вкладка UITableView сверху и кнопки не работает
  • iOS: установите альфа выбранного цвета выделения для UITableViewCell
  • Перезагрузка UITableView сбрасывает представления в представлении вида
  • Ответ AFNetworking отображается в журнале, но в отладчике равен нулю
  • NSLog игнорируется на устройствах
  • Заполнение UITableView с неработающим массивом
  • Центральная метка в UITableViewCell
  • Interesting Posts

    Является ли акселерометр iPhone точным / достаточно точным для отслеживания скорости (а не смещения)?

    Не видеть ссылку «Ответить» на приложение в платформе Facebook Messenger Platform

    UIView: авторезистировать все, кроме одного подвью – iOS

    Невозможно одновременно удовлетворить ограничения при открытии камеры

    Как запускать автоматический отступ при фиксации в xcode

    Использование делегата для связи между UIPopoverViewController и MainViewController

    Требуется ios существующий адрес электронной почты

    Пользовательская клавиатура в iphone

    Смешение аудио в iOS с использованием AVFoundation не работает

    Watchkit OS 2, WCSession работает в фоновом режиме

    Обновить таблицу в классе модели

    Убедитесь, что я всегда перезаписываю приложение ios при обновлении

    GHUnit дает ошибку allocate_pages () после преобразования в ARC в проекте iOS

    Как отлаживать «Прекращение в ответ на завершение backboardd»

    Как открыть направление движения Apple Maps, пропуская адрес

    Давайте будем гением компьютера.