gpt4 book ai didi

objective-c - 为 UINavigationBar 的 barTintColor 设置动画

转载 作者:太空狗 更新时间:2023-10-30 03:39:30 27 4
gpt4 key购买 nike

我正在开发的应用在推送新的 View Controller 时更改了导航栏的 barTintColor。现在我们在目标 View Controller 的 viewWillAppear: 方法中设置该颜色,但是我们有一些问题。

按照我们现在的做法,导航栏的颜色会突然改变,而栏的其余内容则照常进行动画处理。我想要的是在源颜色和目标颜色之间淡入淡出。有什么方法可以通过公共(public) Cocoa Touch API 实现这一目标吗?

最佳答案

您可以使用 UIViewControllerTransitionCoordinator 添加与 View Controller 转换的时间和动画曲线相匹配的额外动画。 .

View Controller 的 transitionCoordinator 将在 View Controller 的动画开始后设置(因此在呈现的 View Controller 的 viewWillAppear 中)。在过渡协调器上使用 animateAlongsideTransition:completion: 添加任何额外的动画。

一个例子:

[[self transitionCoordinator] animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
} completion:nil];

关于objective-c - 为 UINavigationBar 的 barTintColor 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com