#uitableview #swift5 #caanimation
Вопрос:
У меня проблема с анимацией пользовательской ячейки таблицы после прокрутки. Мне нужно перейти к определенному индексу с анимацией прокрутки, а затем выделить ячейку, изменив фон ячейки.
Для прокрутки я использую
self.tableView.scrollToRow(at: index_path, at: position, animated: true)
В обратном вызове willDisplayCell я добавляю анимацию в ячейку, к которой я прокручиваю, с помощью CAAnimation, как это.
let animation = CABasicAnimation(keyPath: "backgroundColor")
animation.fromValue = UIColor.white.cgColor
animation.toValue = UIColor.blue.withAlphaComponent(0.4).cgColor
animation.duration = 1
animation.autoreverses = true
animation.isRemovedOnCompletion = true
cell.contentView.layer.add(animation, forKey: "any key")
Анимация изменения цвета фона ячейки не работает. Я думаю, что анимация прокрутки ячейки таблицы переопределяет добавленную анимацию. Есть ли какой-либо обходной путь для этого.(Примечание: мне тоже нужна анимация прокрутки)
Комментарии:
1. попробуй
UIView.animate
вместоCABasicAnimation
этого ..2. @NayanDave .Хорошо. Я попробую это сделать и вернусь к вам.
3. @NayanDave, нет, это не помогло
4. Попробуй
DispatchQueue.main.async{ TableView_Scroll_Code }
5. попробуйте добавить анимацию в метод prepareForReuse UITableView. Метод используется для @Documentation «сброс атрибутов ячейки, которые не связаны с содержимым, например, альфа, редактирование и состояние выбора».
Ответ №1:
«Любой ключ» не является допустимым ключом. Попробуйте вместо этого использовать kCATransition в качестве ключа.
Комментарии:
1. Привет, спасибо, что ответили. Я пытался, но это не сработало. Я не думаю, что этот ключ имеет какое-либо отношение к анимации. Если я не ошибаюсь, это просто для уникальной идентификации добавленной анимации.