如何在UISearchController演示/解雇动画旁边制作动画?
我在tableHeaderView
有一个带有搜索栏的表视图,由UISearchController
管理。 我使用标准的UISearchController
演示动画。
我想为与searchBar动画具有相同持续时间的另一个视图设置动画。 我尝试了各种持续时间值但是它们在任何时候都不完全匹配。
所以我认为使用-[UIViewControllerTransitionCoordinator animateAlongsideTransition:completion:]
API会很棒。
不幸的是我找不到对象的引用。 具体来说,
searchController.presentingViewController.transitionCoordinator
为nil
。
我有同样的问题,我需要在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) }
我还必须在解雇搜索控制器时动画视图,在这种情况下我实现了UISearchControllerDelegate
的willDismissSearchController
方法,在此方法中, transitionCoordinator
不能立即使用,但是进行异步调用可以解决问题
解聘:
func willDismissSearchController(_ searchController: UISearchController) { DispatchQueue.main.async { searchController.transitionCoordinator?.animate(alongsideTransition: { (context) in // animate views }, completion: nil) } }
这适用于iOS 9