如何从自定义导航到半透明导航栏并返回?显示问题!

时间:2010-05-19 17:17:21

标签: iphone uiscrollview uinavigationbar pushviewcontroller

所以,我得到了这个基于导航的应用程序(带有自定义NavigationBar - 类别),我在这里有 2 问题......

@implementation UINavigationBar (Custom)

- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"bg_toolbar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

@end

由于基于导航的应用程序,大多数视图的高度 436px (= ScreenSize - NavigationBar高度,您可能知道;)。

我有一个类似于照片应用程序概述的视图,显示所有缩略图,从那里我推动包含滚动视图的视图控制器(如在照片应用程序中),就像这样

- (void)buttonPressed:(id)sender 
{
    UIButton *btn = (UIButton *)sender;
    PhotoSetScrollViewController *psc = [[PhotoSetScrollViewController alloc] initWithPhotoArray:photos andID:btn.tag];
    [self.navigationController pushViewController:psc animated:YES]; 
}

问题1 : 持有全屏滚动视图的视图的高度 480px 这似乎是一个问题,因为当按下后退按钮弹出视图控制器时,包含缩略图的视图(高度< strong> 436px )向上移动到导航栏下方。并且工具栏一直在显示。可能是什么问题?

编辑:当显示导航和工具栏(最初隐藏)时,全屏滚动视图也会移动。即使没有自定义导航栏,我也可以看到周围的视图。这很奇怪。

问题2 : 如何在我的自定义导航栏和标准黑色半透明样式之间切换?

1 个答案:

答案 0 :(得分:0)

JD,

问题1:请澄清您的问题....您是否尝试使其与照片应用程序相同,您点击一张照片,然后您可以隐藏导航栏和工具栏?除非您明确隐藏工具栏,否则当您通过点击后退按钮弹出视图时,它将继续显示。您可以延迟弹出视图并将其隐藏或隐藏在先前视图控制器的viewDidAppear方法中。

如果您的视图四处移动,您可能需要检查IB中的框架设置(单击相关视图后,检查器窗口中的第二个选项卡)。另外,请确保将伪造的导航栏放在XIB文件中,这样就可以正确地放置所有内容。

问题2:

首先,请查看此帖子:using image or tint color on uinavigationbar in iphone?

然后使用它:

self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;