#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. Я не понимаю, какую «строку» вы пытаетесь удалить. Также удалите
*
onNSInteger *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 и изображения. Когда установлен флажок, я хочу, чтобы строка исчезла (чтобы она отображалась в разделе «завершено»)