2009-11-17 45 views
2

将图像添加到UINavigationItem的titleView非常简单,但是当我在堆栈上推新视图时,会将UINavigationItem和titleView一起向左滑动,并加载一个新的UINavigationItem。UINavigationBar与静态图像

我可以想出很多方法可以让图片保持原样,但它们都显得很黑。有没有一种正常的做法,我找不到?以下是添加图像到我的视图控制器的UINavigationItem代码:

UIImage *tImage = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"logo_topbar" ofType:@"png"]]; 
UIImageView *tImageView = [[UIImageView alloc] initWithImage:tImage]; 
self.navigationItem.titleView = tImageView; 
[tImage release]; 
[tImageView release]; 

谢谢你们/加仑

回答

2

我想你可以嵌入整个视图成超图,用静态图像在您现有的用户界面下。然后,您可以将UINavigationItems中的标题变为透明,这样按钮将在图像上滑动,但图像将保持放置状态。

+0

这个解决方案听起来很有趣,但我不相信这是最好的方法。你是否在谈论如何让整个导航栏透明,除了按钮?然后在它下面基本放置一个酒吧+徽标的屏幕截图?因为如果您只是将底层图像上的UINavigationItem设置为透明,则它在转换期间也会移动,从而对底层徽标造成更奇怪的窗口效果。 – DougW 2009-11-17 22:22:13

+0

我认为这有点含糊,但我会继续接受它,因为我认为这种方法的变体是没有完全自定义导航栏的唯一方法。为了避免奇怪的窗口,您可能必须至少子类化整个栏并自行管理子元素的布局。 – DougW 2009-12-18 20:16:11

2

您可以在同一titleview的添加到您希望它出现在所有UIViewControllers,但是我猜想这样可以让ImageView左侧动画,并从右侧进入新的相同动画。

我看到的唯一方法是添加像这样的UIImageView:

[self.navigationController.view addSubview:tImageView]; 

或试试这个

[self.navigationController.navigationBar addSubview:tImageView];