/ / Управление Разменяйте между две клетки, вместо да променяте разстоянието NSIndex на други UITableView клетки - ios, ios4, uitableview

Управлявайте Размяна между две клетки, вместо да променяте пътя на NSIndexpath на други UITableViewcells - ios, ios4, uitableview

Знам, че това е по подразбиране собственост на пренареждане на tableviewcell клетки, когато UITableView е в режим на редактиране и потребител просто пренаредете редове, които се обработват от UITableViewController.

Според Apple Doc: Пренареждане на реда

Сега искам да направя нещо, когато плъзгам клеткатанад другите клетки, клетките в задната част не трябва да се пренареждат автоматично, само клетката, върху която изхвърлям изтеглената клетка, трябва да бъде пренаредена, нещо като Размяна на две клетки.

За по-добро разбиране вижте снимката по-долу. Би трябвало да мога Shift Jones на Room1 & контролерът на таблицата трябва да може автоматично да премества Smith2 в Room3.

въведете описанието на изображението тук

По-долу са делегирани методи, които използвам:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {

NSString *temp = [roomstoringArray objectAtIndex:sourceIndexPath.row];
[roomstoringArray removeObjectAtIndex:sourceIndexPath.row];

[roomstoringArray insertObject:temp atIndex:destinationIndexPath.row];

// [temp release];

}

Проблемът е:

  1. Как мога да спра други клетки да се пренареждат автоматично, докато аз прекарвам клетките над други.
  2. Няма нито един от делегираните методи, които се извикват, когато се използва Плъзнете клетката над другите, но само се нарича метод moveRowAtIndexPath когато една капка клетка върху него. Така че, дори не може да провери за някакво състояние и не намери никакъв обхват на това подобрение в съществуващия TableView.

Има ли имот с TableView, където азможе да спре такова поведение, за да извърши смяната между две клетки само там, където останалите редове остават в един и същ indexPath.Alos, може ли някой да ми помогне по някакъв друг начин, ако има такива.

Отговори:

0 за отговор № 1

Използвайте тази връзка, за да получите ефекта, който искате. https://github.com/mystcolor/JTGestureBasedTableViewDemo


0 за отговор № 2

За проблем, който споменавате, моля, проверете делегатите от UITableView тук.
По-долу са полезни за вас методи.

targetIndexPathForMoveFromRowAtIndexPath
canMoveRowAtIndexPath

За Swap b / w два реда можете да получите представа за това отговор.