Есть ли способ скрыть кнопку " - " (Удалить) при редактировании UITableView
в моем приложении для iphone у меня есть UITableView в режиме редактирования, где пользователю разрешено только переупорядочивать строки без разрешения на удаление.
Так есть ли способ, где я могу скрыть " - " красная кнопка от TableView. Пожалуйста, дайте мне знать.
спасибо
4 ответов:
вот мое полное решение, без отступа (0left align) ячейки!
- (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; }
Swift 3 эквивалентно принятому ответу только с необходимыми функциями:
func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool { return false } func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle { return .none }
Это останавливает отступ:
- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; }
я столкнулся с аналогичной проблемой, когда я хотел, чтобы пользовательские флажки отображались в режиме редактирования, но не кнопка "( - ) " delete.
Стефан направил меня в правильном направлении.
Я создал переключатель и добавил его в качестве editingAccessoryView в ячейку и подключил его к методу.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .... // Configure the cell... UIButton *checkBoxButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 32.0f)]; [checkBoxButton setTitle:@"O" forState:UIControlStateNormal]; [checkBoxButton setTitle:@"√" forState:UIControlStateSelected]; [checkBoxButton addTarget:self action:@selector(checkBoxButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; cell.editingAccessoryType = UITableViewCellAccessoryCheckmark; cell.editingAccessoryView = checkBoxButton; return cell; } - (void)checkBoxButtonPressed:(UIButton *)sender { sender.selected = !sender.selected; }реализованы эти методы делегата
- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleNone; }
Comments