如何与 UISearchController presentation/dismissal 动画一起制作动画?
How to animate alongside a UISearchController presentation/dismissal animation?
我在 tableHeaderView
中有一个带有搜索栏的 table 视图,由 UISearchController
管理。我使用标准 UISearchController
演示动画。
我想用与 searchBar 动画相同的持续时间为另一个视图设置动画。我尝试了各种持续时间值,但遗憾的是它们并不总是完全匹配。
所以我认为使用 -[UIViewControllerTransitionCoordinator animateAlongsideTransition:completion:]
API 会很棒。
很遗憾,我找不到 <UIViewControllerTransitionCoordinator>
对象的引用。具体来说,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
我在 tableHeaderView
中有一个带有搜索栏的 table 视图,由 UISearchController
管理。我使用标准 UISearchController
演示动画。
我想用与 searchBar 动画相同的持续时间为另一个视图设置动画。我尝试了各种持续时间值,但遗憾的是它们并不总是完全匹配。
所以我认为使用 -[UIViewControllerTransitionCoordinator animateAlongsideTransition:completion:]
API 会很棒。
很遗憾,我找不到 <UIViewControllerTransitionCoordinator>
对象的引用。具体来说,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