Я пытаюсь сделать анимацию TableView (развернуть ячейку) с последующим изменением внешнего вида ячейки (добавить тень).
Это будет выглядеть примерно так
однако я обнаружил, что если я установлю тень в том же прогоне l oop, что и анимация расширения, тень получит переопределение:
tableView.beginUpdates()
cell.footerContainer.isHidden = false
tableView.endUpdates()
cell.highlightMode = true //computed property to add top+bottom shadow
Но если я добавлю задержка (предположительно при последующем запуске l oop), тогда все работает:
tableView.beginUpdates()
cell.footerContainer.isHidden = false
tableView.endUpdates()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
cell.highlightMode = true //computed property to add top+bottom shadow
}
Но это не надежно, потому что 0,3 на одном устройстве будет работать, может не работать на более медленном устройстве. Поэтому я попробовал это:
CATransaction.begin()
CATransaction.setCompletionBlock {
cell.highlightMode = true //computed property to add top+bottom shadow
}
tableView.beginUpdates()
cell.footerContainer.isHidden = false
tableView.endUpdates()
CATransaction.commit()
И это тоже не сработало.
Как лучше это сделать?