- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
当按下某个 Controller 时,我正在更改导航栏的背景图像。我想为这种变化制作动画。我可以使用以下代码这样做:
[UIView transitionWithView:self.navigationController.navigationBar
duration:0.3f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"now-playing-nav-bar.png"]
forBarMetrics:UIBarMetricsDefault];
} completion:NULL];
但是,这会阻止应用于 navigationBarTitle
和 UIBarButtonItem
的默认推送动画。
如何让背景变化和推送动画协同工作?
我更喜欢尽可能普通的解决方案。
PS:我不能使用tintColor
,因为背景有纹理。
最佳答案
仅在 iOS 6 上测试
我使用 Core Animation 解决了它:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CATransition *animation = [CATransition animation];
animation.duration = 0.3;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.type = kCATransitionFade;
[self.navigationController.navigationBar.layer addAnimation:animation forKey:nil];
[UIView animateWithDuration:0.3 animations:^{
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"now-playing-nav-bar.png"] forBarMetrics:UIBarMetricsDefault];
}];
}
在 viewWillDisappear:
中做同样的事情,你就可以开始了。
关于ios - 如何为 UINavigationBar setBackgroundImage 设置动画 : forBarMetrics:?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14602759/
我在 iOS7 gm 中使用 UINavigationBar 外观自定义 UINavigationBar BackgroundImage,但在 UIPopoverController 中不起作用。我在
我在 iOS7 gm 中使用 UINavigationBar 外观自定义 UINavigationBar BackgroundImage,在 UIPopoverController 中不起作用。我将这
当按下某个 Controller 时,我正在更改导航栏的背景图像。我想为这种变化制作动画。我可以使用以下代码这样做: [UIView transitionWithView:self.navigatio
我刚刚切换到 iOS 5,除了自定义导航栏外,我的应用程序中的一切似乎都正常工作。我环顾四周,听从了每个人关于调用新方法 setBackgroundImage: forBarMetrics: 的建议,
我有一个显示图像缩略图的 UICollectionView。单击时,缩略图会调用另一个 View wallpaperView,以全尺寸显示图像。 -(void)collectionView:(UICo
我有一个基于 Storyboard的应用程序,其中导航 Controller 作为初始 View Controller 。 我想使用 setBackgroundImage:forBarMetrics:
我有一个带有一些自定义定位栏的应用程序,因此我想更改按钮文本的标准垂直对齐方式。我试过设置 [buttonItem setTitlePositionAdjustment:UIOffsetMake(0,
我是一名优秀的程序员,十分优秀!