如何在UISearchController演示/解雇动画旁边制作动画?

我在tableHeaderView有一个带有搜索栏的表视图,由UISearchController管理。 我使用标准的UISearchController演示动画。

我想为与searchBar动画具有相同持续时间的另一个视图设置动画。 我尝试了各种持续时间值但是它们在任何时候都不完全匹配。

所以我认为使用-[UIViewControllerTransitionCoordinator animateAlongsideTransition:completion:] API会很棒。

不幸的是我找不到对象的引用。 具体来说, searchController.presentingViewController.transitionCoordinatornil

我有同样的问题,我需要在UISearchController的演示文稿旁边制作其他视图的动画; 在调用提供搜索控制器之后, transitionCoordinator变为可用,您可以添加代码来为视图设置动画

介绍:

 func search() { let searchController = UISearchController(searchResultsController: resultsController) // Configure search controller self.present(searchController, animated: true) {} self.transitionCoordinator?.animate(alongsideTransition: { (context) in // animate other views }, completion: nil) } 

我还必须在解雇搜索控制器时动画视图,在这种情况下我实现了UISearchControllerDelegatewillDismissSearchController方法,在此方法中, transitionCoordinator不能立即使用,但是进行异步调用可以解决问题

解聘:

 func willDismissSearchController(_ searchController: UISearchController) { DispatchQueue.main.async { searchController.transitionCoordinator?.animate(alongsideTransition: { (context) in // animate views }, completion: nil) } } 

这适用于iOS 9