Могу ли я использовать анимацию DiffableDataSource внутри UIView.animate?

Я играю с UITableViewDiffableDataSource, и я пытаюсь добавить задержку и продолжительность для этой функции при изменении источника данных: open func apply(_ snapshot: NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>, animatingDifferences: Bool = true, completion: (() -> Void)? = nil)

Мой код:

              func didTapButton() {
            button.alpha = 0
            var diffableDataSourceSnapshot = self.snapshot()
            diffableDataSourceSnapshot.insertItems([newItem], afterItem: item)
            diffableDataSourceSnapshot.deleteItems([item])
                
            UIView.animate(withDuration: 1, delay: 3, options: []) {
                self.apply(diffableDataSourceSnapshot, animatingDifferences: true)
            } completion: { _ in
                self.view.layoutIfNeeded()
            }
    }

Я хочу:

  1. Немедленно скрыть кнопку
  2. через 3 секунды измените представление с помощью функции diffableDataSourceSnapshot.

Однако блок анимации UIView, похоже, не работает, я увидел, что приложение немедленно выполняет анимацию diffableDataSourceSnapshot, без продолжительности и задержки.

Могу ли я использовать эту функцию "apply" внутри блока анимации UIView?

0 ответов

Другие вопросы по тегам