Удаление строк в uitableview - PullRequest
       1

Удаление строк в uitableview

2 голосов
/ 04 ноября 2011

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

Могу ли я использовать одну единственную кнопку, скажем «удалить», которая при нажатии удалит все строки в табличном представлениисразу .?

Ответы [ 3 ]

7 голосов
/ 04 ноября 2011

Да, вы можете сделать это. Сначала удалите все данные из своего источника данных, а затем перезагрузите таблицу. Например -

[yourArrayDataSource removeAllObjects];
[yourTable reloadData];

Чтобы оживить удаление строк - сделайте это методом IBAction и свяжите его с вашим UIButton. Как только вы нажмете кнопку, у вас будет плавная потрясающая анимация, заставляющая все ваши строки исчезать.

-(IBAction)deleteRows
{
    [yourTable beginUpdates];
    for(int i=0; i<[yourArrayDataSource count]; i++)
    {
        indexPath = [NSIndexPath indexPathForRow:i inSection:0];
        [self.searchResTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]  withRowAnimation:UITableViewRowAnimationFade];
    }
    [yourTable endUpdates];
}

Здесь вы можете использовать различные анимации -

UITableViewRowAnimationBottom
UITableViewRowAnimationFade
UITableViewRowAnimationMiddle
UITableViewRowAnimationNone
UITableViewRowAnimationRight
UITableViewRowAnimationTop
3 голосов
/ 28 февраля 2014

Ответ Срикара поставил меня на правильный путь, но он создает множество дополнительных массивов из одного элемента и вызывает deleteRowsAtIndexPaths гораздо больше, чем необходимо.

-(void)clearTable
{

    NSMutableArray *indexPaths = [NSMutableArray array];
    for(int i=0; i<[self.myArray count]; i++)
    {
        NSIndexPath *anIndexPath = [NSIndexPath indexPathForRow:i inSection:0];
        [indexPaths addObject:anIndexPath];
    }

    [self.myTableView beginUpdates];
    [self.myTableView deleteRowsAtIndexPaths:indexPaths  withRowAnimation:UITableViewRowAnimationFade];
    self.myArray = [NSArray array];
    [self.myTableView endUpdates];

}
3 голосов
/ 04 ноября 2011

сделать кнопку и в методе действия кнопки

-(IBAction)deleteRows
{
     [array removeAllObjects];
    [tableview reloadData];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...