iphone 5 和 6 的导航栏图像
Navigation bar image for iphone 5 and 6
我正在尝试为 iphone 5、6 和 6 plus 创建一个应用程序。
我已经为导航栏添加了自定义图像,但是出现问题。在 images.xcassets 中有两个插槽 2x 和 3x。
我已经知道 2x 用于 iphone 5 和 6,3x 用于 6 加。如果我在 2x 插槽中放置 iphone 5 的图像,它会太小(当我在 iphone 6 上模拟应用程序时),如果我在该插槽中放置 phone 6 的图像,它会太大(当我在 iphone 5 上运行 emulet 应用程序时)。
那么,如果我缺一个插槽,如何为 iphone 5 和 6 设置导航栏图像?我必须在那里使用条件吗?
您可以通过
这样的代码来处理它
Swift
var navBarImage: UIImage? = nil
if UIScreen.mainScreen().bounds().size.width == 375.0 {
navBarImage = UIImage.imageNamed("yourimage-iphone6@2x").resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0))
}
else {
if UIScreen.mainScreen().bounds().size.width == 414.0 {
navBarImage = UIImage.imageNamed("yourimage-iphone6plus3x").resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0))
}
else {
navBarImage = UIImage.imageNamed("yourimage-iPhone5").resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0))
}
}
UINavigationBar.appearance().setBackgroundImage(navBarImage, forBarMetrics: UIBarMetricsDefault)
Objective c
UIImage *navBarImage =nil;
if ([[UIScreen mainScreen] bounds].size.width==375.0f) {
navBarImage = [[UIImage imageNamed: @"yourimage-iphone6@2x"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else if ([[UIScreen mainScreen] bounds].size.width==414.0f) {
navBarImage = [[UIImage imageNamed: @"yourimage-iphone6plus3x"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else{
navBarImage = [[UIImage imageNamed: @"yourimage-iPhone5"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];
我正在尝试为 iphone 5、6 和 6 plus 创建一个应用程序。
我已经为导航栏添加了自定义图像,但是出现问题。在 images.xcassets 中有两个插槽 2x 和 3x。
我已经知道 2x 用于 iphone 5 和 6,3x 用于 6 加。如果我在 2x 插槽中放置 iphone 5 的图像,它会太小(当我在 iphone 6 上模拟应用程序时),如果我在该插槽中放置 phone 6 的图像,它会太大(当我在 iphone 5 上运行 emulet 应用程序时)。
那么,如果我缺一个插槽,如何为 iphone 5 和 6 设置导航栏图像?我必须在那里使用条件吗?
您可以通过
这样的代码来处理它Swift
var navBarImage: UIImage? = nil
if UIScreen.mainScreen().bounds().size.width == 375.0 {
navBarImage = UIImage.imageNamed("yourimage-iphone6@2x").resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0))
}
else {
if UIScreen.mainScreen().bounds().size.width == 414.0 {
navBarImage = UIImage.imageNamed("yourimage-iphone6plus3x").resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0))
}
else {
navBarImage = UIImage.imageNamed("yourimage-iPhone5").resizableImageWithCapInsets(UIEdgeInsetsMake(0, 0, 0, 0))
}
}
UINavigationBar.appearance().setBackgroundImage(navBarImage, forBarMetrics: UIBarMetricsDefault)
Objective c
UIImage *navBarImage =nil;
if ([[UIScreen mainScreen] bounds].size.width==375.0f) {
navBarImage = [[UIImage imageNamed: @"yourimage-iphone6@2x"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else if ([[UIScreen mainScreen] bounds].size.width==414.0f) {
navBarImage = [[UIImage imageNamed: @"yourimage-iphone6plus3x"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
else{
navBarImage = [[UIImage imageNamed: @"yourimage-iPhone5"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]];