【发布时间】:2014-05-29 14:09:29
【问题描述】:
当从一个view controller 转换到另一个时,我想为barTintColor 属性设置动画。
我尝试了以下解决方案:
[[self transitionCoordinator] animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
} completion:nil];
它应该为 barTintColor 设置动画,但我的 导航栏 应该是半透明的。为了解决这个问题,我尝试在trasitionCoordinatoranimation 的完成块中将其设置为translucent = YES。像这样:
completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
self.navigationController.navigationBar.translucent = YES;
}
但这会导致动画完成后导航栏的barTintColor值略有跳跃。这是意料之中的,因为半透明和不透明的颜色不同。
提前致谢!
编辑:
如果我从动画块中删除 self.navigationController.navigationBar.translucent = NO; 行,我忘了补充说,导航栏的左上角会出现一些奇怪的缩放动画。所以这也不是解决方案。
【问题讨论】:
标签: ios iphone objective-c uinavigationbar bartintcolor