Удаление строки по тегу

#ios #xcode #uitableview #tags

#iOS #xcode #uitableview #Теги

Вопрос:

В настоящее время я пытаюсь создать своего рода tasktracker.. Следующий код работает в настоящее время, но мне нужно, чтобы он удалял строку с тегом кнопки.. Другими словами.

Когда нажата кнопка с тегом: 0, удалите строку с тегом: 0

Все мои попытки завершились неудачей, поэтому я передаю это экспертам.

  - (void)buttonPressedAction:(id)sender
    {
        UIButton *button = (UIButton *)sender;
        NSInteger *row = button.tag;
        NSString *cleanedUp = [NSString stringWithFormat:@"%d", row];
            if(button.titleLabel.text == @"Unchecked"){
            [button setTitle:@"Checked" forState:UIControlStateNormal];
        }
        else{
            [button setTitle:@"Unchecked" forState:UIControlStateNormal];
        }
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:button.titleLabel.text 
                                                        message:cleanedUp
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
        [alert show];

    }
  

Комментарии:

1. Я не понимаю, какую «строку» вы пытаетесь удалить. Также удалите * on NSInteger *row , я уверен, что это вызывает у вас некоторые предупреждения.

2. У меня есть несколько ячеек с кнопкой пользовательского интерфейса в каждой. Тегу uibutton присваивается значение indexpath.row ячейки. Когда вызывается эта функция, я не хочу анимировать эту ячейку.

Ответ №1:

UITableView имеет встроенные возможности, позволяющие удалять строки. Это может быть лучше подходит для того, что, похоже, вы пытаетесь выполнить. Вот пример.

Для использования пользовательских кнопок вам потребуется использовать beginUpdates и endUpdates изменять анимированный вид таблицы.

 NSInteger row = button.tag;
[tableView beginUpdates];
//make sure you remove the row from your datasource 
//as well or an exception will be raised
[self.datasource removeObjectAtIndex:row]
[deleteRowsAtIndexPaths:[NSIndexPath indexPathForRow:row inSection:0]
       withRowAnimation:UITableViewRowAnimationFade];

[tableView endUpdates];
  

Комментарии:

1. Я в курсе. Но я пытаюсь создать пользовательский флажок, используя UIButton и изображения. Когда установлен флажок, я хочу, чтобы строка исчезла (чтобы она отображалась в разделе «завершено»)