我正在尝试调整iphone 6的应用程序。
在将自定义背景图像设置到导航栏之前,一切运行良好:
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbarbg.png"] forBarMetrics:UIBarMetricsDefault];
由于此图像是针对iphone 4/5制作的,因此宽度不足。
你知道如何为iphone6设置正确的图像吗?
我试图将我的图片命名为navbarbg@3x.png或navabarbg-667h@3x.png,但它并没有改变任何内容。
有什么想法吗?
更新: 我添加了我使用的图像:
答案 0 :(得分:5)
可能这也有帮助,它的工作正常(如果您的图像阴影或不同)您也可以使用这个但不同的图像,您必须根据设备的比例设置:
NSLog(@"width is :%f",[[UIScreen mainScreen] bounds].size.width);
UIImage *navBarImage =nil;
if ([[UIScreen mainScreen] bounds].size.width==375.0f) {
navBarImage = [[UIImage imageNamed: @"header-topbg-iphone6@2x"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else if ([[UIScreen mainScreen] bounds].size.width==414.0f) {
navBarImage = [[UIImage imageNamed: @"header-topbg-iphone6plus@3x"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else{
navBarImage = [[UIImage imageNamed: @"header-topbg"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
你可以看到iphone6 +的下图: 感谢。
答案 1 :(得分:4)
您应创建可调整大小的图片并将其设置为backgroundImage
。根据提供的图片,您的左上角插图为82.0f
个点。您可以根据需要进行调整以适应文本。
另外,请不要忘记{6}仅在iPhone 6 Plus上使用@3x
图像,不 iPhone 6。
UIImage *backgroundImage = [UIImage imageNamed:@"your-image-name"];
UIImage *resizableBackground = [backgroundImage resizableImageWithCapInsets:UIEdgeInsetsMake(0.0f, 82.0f, 0.0f, 0.0f)];
[self.navigationController.navigationBar setBackgroundImage:resizableBackground forBarMetrics:UIBarMetricsDefault];