仅在“ios 5.0”中无法在导航栏上设置图像

Posted

技术标签:

【中文标题】仅在“ios 5.0”中无法在导航栏上设置图像【英文标题】:Could not set Image on Navigation bar only in "ios 5.0" 【发布时间】:2012-01-17 12:27:49 【问题描述】:

在我的通用应用中,

我正在导航栏上设置图像...使用 **

objective c category...on UINavigationBar

**

代码在 iphone 的 ios 5.0 中运行良好 *代码在 iPhone/iPad 的 ios 4.3 中运行良好*

*But not working in **ios 5.0 iPad***





- (void) drawRect:(CGRect)rect 
    
    UIImage *image;

   image = [UIImage imageNamed: @"Navigation.png"];

    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];  

      [self setTintColor:[UIColor clearColor]];

      NSLog(@"Draw Rect");

    

【问题讨论】:

【参考方案1】:

要在 iOS 5 中为导航栏设置背景图像,您可以使用以下代码

if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)])
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Navigation.png"] forBarMetrics:UIBarMetricsDefault];

但请记住,这在 iOS 4 中不起作用。要使其在两者中都起作用,您还需要向 UINavigationBar 添加一个类别

@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect 
UIImage *img = [UIImage imageNamed:@"Navigation.png"];
[img drawInRect:rect];

【讨论】:

如果你同时使用代码sn-ps你就不必找到iOs版本。如果你还想找***.com/questions/820142/…【参考方案2】:

如果你想在应用程序范围内设置后台,你可以使用 iOS5 的 UIAppearance。

[[UINavigationBar appearance] setBackgroundImage:X forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:X forBarMetrics:UIBarMetricsLandscape];

【讨论】:

以上是关于仅在“ios 5.0”中无法在导航栏上设置图像的主要内容,如果未能解决你的问题,请参考以下文章

无法识别导航栏的图像视图上的触摸。?

如何在导航栏上的 UIBarButtonItem 内偏移 UIButton 图像?

如何使用 Tailwind CSS 仅在小型设备上将导航栏上的项目居中

UINavigationBar translucent 移除添加在导航栏上的图像

在 CSS/HTML 中为导航栏上的按钮添加图像

无法在导航栏上添加导航项