仅在“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 仅在小型设备上将导航栏上的项目居中