将导航栏设置为“黑色半透明”样式时出现问题

时间:2009-07-07 12:14:56

标签: iphone

我正在使用objective-c开发一个应用程序,并在该应用程序中将navigationBar设置为半透明(通过IB)。但问题是导航栏后面显示的视图。

还有其他人尝试使用半透明导航栏吗?

问候

贾雅拉杰

2 个答案:

答案 0 :(得分:1)

从OS 3.0开始,[navigationController视图]自动调整为“underlap”半透明导航栏

您可以简单地将44个像素添加到origin属性的y值以克服此问题。

答案 1 :(得分:0)

如果您知道自己是肖像(不是横向,其中导航栏的高度小于44),您可以使用44

你也可以这样做:

// applicationFrame subtracts the height of the statusBar if it's visible.
// bounds doesn't take into account the statusBar.
CGRect navFrame = [[UIScreen mainScreen] applicationFrame];
NSLog(@"navFrame: %f x %f", navFrame.size.width, navFrame.size.height);
navFrame.size.height -= self.navigationController.navigationBar.frame.size.height;
NSLog(@"navFrame: %f x %f", navFrame.size.width, navFrame.size.height);
UIImageView *imageView = [[UIImageView alloc] initWithFrame:navFrame];
NSLog(@"imageView: %@", imageView);

我从阅读three20的源代码中学到了这一点。你可以在github.com上找到它

马特