UINavigationBar
iOS7
上发生了一些奇怪而令人沮丧的事情。我正在尝试添加这样的图像:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Logo_Small.png"] forBarMetrics:UIBarMetricsDefault];
结果是我的标题字母 - 希伯来字母 - 在导航栏上重复出现。
我尝试了UIBarMetrics
标志的所有四个选项,但是对于其他三个选项,徽标就会消失。我还根据文档将图像大小设置为 320x64 。但似乎没有什么是正确的,而且我即将放弃使用徽标并且只有一个controller.title。
答案 0 :(得分:0)
如果以上操作无效,请在您的NavigationBar中添加imageview,如下面的代码所示。它有效。
UIImage *image = [UIImage imageNamed: @"NavigationBar@2x.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];
imageView.frame = CGRectMake(0, 0, 320, 44);
[self.navigationController.navigationBar addSubview:imageView];
答案 1 :(得分:0)
执行以下操作:
UIImage *gradientImage = [[UIImage imageNamed:@"Logo_Small.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(-4, 300, 10, 300)];// play here
[[UINavigationBar appearance] setBackgroundImage:gradientImage forBarMetrics:UIBarMetricsDefault];
答案 2 :(得分:0)
你可以这样做
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,44)];
iv.image = [UIImage imageNamed:@"Logo_Small.png"];
self.navigationItem.titleView = iv;
答案 3 :(得分:0)
使用此,
UIImage *navBarImage64 = [[UIImage imageNamed:@"Logo_Small.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:navBarImage64 forBarMetrics:UIBarMetricsDefault];
答案 4 :(得分:0)
你的代码实际上是有效的。问题是你可能在将UINavigationBar添加到屏幕后调用它。
要验证您的代码是否正常工作,您可以尝试将其放入AppDelegate的didiFinishedLaunchingWithOptions中。
答案 5 :(得分:0)
要使用Image自定义导航栏,请使用
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"ImageName.png"] forBarMetrics:UIBarMetricsDefault];