iphone - 导航栏 iOS 7 中的半透明和自定义图像

标签 iphone ios ios7

在 iOS 6 中我使用了这个方法

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

但当我在 iOS 7 中使用它时,它只会覆盖状态栏留空,我已经尝试使用更大的图像,但它不起作用。

但最重要的是我想在导航栏中使用半透明选项,它是否兼容半透明并且在导航栏中有自定义图像?

最佳答案

如果我正确理解了您的问题(抱歉,如果我没有理解),您也想将导航背景图像扩展到状态栏后面。

你可以试试这段代码:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_bar.png"] forBarMetrics:UIBarMetricsDefault];

为了使 nav_bar.png 图像也位于状态栏后面,您需要将图像的高度增加 20px。导航栏的高度为 44px。

基本上,nav_bar.png 需要宽度为 320px,广告高度为 64px。然后它将位于状态栏后面。

我建议在 iOS 7 中,不要使用华丽的图形(如 Yanchi 所说),而只使用简单的颜色。选择白色或黑色默认值,或使用以下代码更改导航栏的色调:

self.navigationController.navigationBar.barTintColor = [UIColor #Choose a colour#];

您将#Choose a colour#替换为 UIColor,例如 blueColor 或 redColor。 您还可以通过编程方式将半透明度设置为 YES。

self.navigationController.navigationBar.translucent = YES;

要回答你最后一个关于是否可以像 Yanchi 所说的那样使 Nav Bar 半透明的问题,你将只能更改实际图像的 alpha。如果你想要模糊效果(iOS 7 风格)它不起作用。我试过了,好像没有办法。它仅适用于纯色(使用我提到的 UIColor 代码)。

希望对您有所帮助。

关于iphone - 导航栏 iOS 7 中的半透明和自定义图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19253406/

相关文章:

xcode - 所选设备指定了不受支持的体系结构

ios - UIAlertView 中的多个 UITextField

iphone - 如何更改UIStatus栏颜色?

ios - 如何从 UILabel 中删除 UIAppearance 设置?

ios - 绘制到缩放的 CGContext 中会产生全白图像

ios - Apple Watch 中的手势识别 (WatchKit)

objective-c - iOS 7.0 下的无效上下文 0x0 和系统降级

ios - 当 iOS 7 中显示工作表/警报时,如何在自定义绘制的控件上将 tintColor 设置为灰色动画?

ios - UICollectionView View 和约束以使单元格适合

用于 Iphone 应用程序开发的 Java?