переупорядочение управления в UITableView - PullRequest
20 голосов
/ 01 сентября 2009

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

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

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

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

Ответы [ 5 ]

62 голосов
/ 03 апреля 2011

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

- (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{

}
4 голосов
/ 26 февраля 2013

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

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;
}
4 голосов
/ 02 сентября 2009

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

- (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;
}

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

Спасибо за тонну

1 голос
/ 29 июля 2018

Swift 5.0

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

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

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

func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
    return true
}
1 голос
/ 01 сентября 2009
 tableView.showsReorderControl = YES; // to show reordering control

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

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleNone;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...