изменение порядка управления в UITableView

Я разрабатываю игру, в которой я использую UITableView с пользовательской ячейкой (подкласс UItableViewCell).

В режиме редактирования: должен отображаться только элемент управления изменением порядка UITableView.

Прямо сейчас я получаю управление удалением и изменением порядка.

Как получить управление только изменением порядка при редактировании?


person Community    schedule 01.09.2009    source источник


Ответы (5)


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

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;
}
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{

}
person Mousa    schedule 03.04.2011
comment
еще ничего - у меня есть 2 вида UITableViewCell в одном UITableView. Печать данных работает гладко, но никак не получается показать управление перестановкой :/ - person raistlin; 20.11.2012

Вы должны использовать этот метод для скрытия кнопки удаления.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;
}
person lomec    schedule 26.02.2013

большое спасибо Oxigen это сработало .... я писал это в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

     static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:CellIdentifier];

     if (!cell) {
         cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
     }

     cell.showsReorderControl = YES; // to show reordering control

    return cell;
}

но я не пишу метод, который вы дали

Огромное спасибо

person Sneha    schedule 02.09.2009

Свифт 5.0

Если вы хотите отключить все другие параметры редактирования для ячеек вашего tableView, кроме того, который позволяет вам изменить их порядок, просто реализуйте эти методы из UITableViewDelegate:

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    true
}

// Removes the ability to delete current cell
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
    .none
}

func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
    true
}
person Bartosz Kunat    schedule 29.07.2018

 tableView.showsReorderControl = YES; // to show reordering control

Чтобы отказаться от управления удалением, в UITableViewDelegate добавьте

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleNone;
}
person oxigen    schedule 01.09.2009