Как возобновить работу группы CAAnimation после повторного использования ячейки? - PullRequest
0 голосов
/ 09 января 2019

Я написал код CAAnimation в Cell. Это работает должным образом на первом шоу клетки. но после повторного использования клетки. Анимация остановлена. Почти все пути в интернете. Это удалить анимацию и добавить снова. Но я надеюсь, что смогу получить анимацию и возобновить снова. Кто-нибудь знает, как это сделать? Спасибо за вашу помощь.

Я также считаю, что яблоко дает возможность остановить и возобновить CAAnimation. Но, похоже, в моем проекте не работает только использование кода возобновления. Вот линия. QA1673

Я использую CAAnimationDelegate для просмотра статуса анимации. Когда ячейка прокручивается за пределы, Они вызывают - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag, чтобы сообщить, что анимация остановлена. так что яблоко остановит это не случайно.

Это вся информация, которую я получил.

1 Ответ

0 голосов
/ 15 января 2019

Как вы обнаружили, ячейка awakeFromNib вызывается для ячейки только один раз, хотя потенциально она будет многократно использоваться многократно. Я бы предложил поставить ваш код следующим образом:

В UITableViewCell или подкласс

- (void)awakeFromNib
Вызывается один раз за всю жизнь клетки. Поместите код инициализации, который не зависит от содержимого ячейки.

- (void)prepareForReuse
Вызывается, когда ячейка собирается к повторному циклу. Поместите здесь код очистки, который необходимо вызвать перед повторным использованием ячейки. Обычно вам не нужно это использовать, но вместо этого вы можете поместить код в cellForRowAtIndexPath. Смотри ниже.

В классе реализации UITableViewDataSource

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Вызывается для каждой ячейки, которую хочет отобразить табличное представление. Поместите здесь код инициализации, который зависит от содержимого ячейки. Я предлагаю вам поставить свой код анимации здесь.

...