管理从普通 NavigationBar 到透明 NavigationBar 的转换
Managing a transition from a normal NavigationBar to a transparent one
我需要管理嵌入在使用标准、浅色、模糊层的 NavigationController 中的两个 ViewController 之间的过渡。应用程序这部分中的所有 ViewControllers 看起来都非常适合这个模糊层,除了一个,而我希望它淡出成为一个完全透明的条,并在我弹出这个 [=22] 时恢复正常=].
期望的行为:
我已经研究了很长时间,但我不知道如何完成它。任何人都可以帮我吗?我研究过 this question 但我不太明白如何实施它。
谢谢!
你调查过 UIViewControllerTransitionCoordinator
了吗?
每个 UIViewController
都有一个 transitionCoordinator
属性 您可以访问以执行与转换相关的任务。
从 UIViewController
的 viewWillAppear
/viewWillDisappear
方法执行转换调用 transitionCoordinator
的 animateAlongsideTransition
方法:
id <UIViewControllerTransitionCoordinator> coordinator = [self transitionCoordinator];
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
// animate the changes in the navigation bar here
} completion:nil];
我需要管理嵌入在使用标准、浅色、模糊层的 NavigationController 中的两个 ViewController 之间的过渡。应用程序这部分中的所有 ViewControllers 看起来都非常适合这个模糊层,除了一个,而我希望它淡出成为一个完全透明的条,并在我弹出这个 [=22] 时恢复正常=].
期望的行为:
我已经研究了很长时间,但我不知道如何完成它。任何人都可以帮我吗?我研究过 this question 但我不太明白如何实施它。
谢谢!
你调查过 UIViewControllerTransitionCoordinator
了吗?
每个 UIViewController
都有一个 transitionCoordinator
属性 您可以访问以执行与转换相关的任务。
从 UIViewController
的 viewWillAppear
/viewWillDisappear
方法执行转换调用 transitionCoordinator
的 animateAlongsideTransition
方法:
id <UIViewControllerTransitionCoordinator> coordinator = [self transitionCoordinator];
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
// animate the changes in the navigation bar here
} completion:nil];