Задержка reloadData на UITableView - PullRequest
       24

Задержка reloadData на UITableView

2 голосов
/ 01 декабря 2010

У меня есть UITableView. Нажав кнопку, я хочу отобразить свой пользовательский вид, а затем, как только вид будет виден, удалить конкретный элемент из таблицы. Пользовательское представление скрывает табличное представление, поэтому я хотел бы, чтобы удаление происходило после того, как это новое представление станет видимым.

В настоящее время у меня есть это, которое добавляет пользовательский вид, а затем должен удалить элемент и перезагрузить таблицу, но перезагрузка происходит, как только заканчивается анимация (у меня есть блок анимации, меняющий альфа-представления) я могу видеть обновление.

[self.view addSubview:customView];
[itemArray removeObject:object];
[self.tableView reloadData];

Как я могу отложить перезагрузку до тех пор, пока вид не станет видимым?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 01 декабря 2010

Попробуйте добавить reloadData к viewDidAppear:

-(void) viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self.tableView reloadData];
}

Это должно дать вам необходимую задержку.

1 голос
/ 02 декабря 2010

Вы упоминаете, что сами анимируете вид;Вы должны вызвать reloadData, когда анимация завершится, используя что-то вроде:

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(methodThatCallsReloadData)];

// or even
[UIView setAnimationDelegate:self.tableView];
[UIView setAnimationDidStopSelector:@selector(reloadData)];

или если вы используете блочный API:

[UIView animateWithDuration:... completion:^(BOOL finished) {
    [self.tableView reloadData];
}];
1 голос
/ 01 декабря 2010

или вы можете использовать метод executeSelector:

[self performSelector:@selector(myOtherMethod) withObject:nil afterDelay:1.5];
...