有三种模拟器或iPhone设备,如下所示
iPhone
iPhone (Retina 3.5 inch)
iPhone (Retina 4 inch)
我想为导航栏实现以下方法。
- (UINavigationController *)navigationController {
nav = [[UINavigationController alloc]
initWithRootViewController:[self demoController]];
// If Iphone/iPod Touch
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
// If iPhone 5 or new iPod Touch
NSLog(@"The height is %f ", [UIScreen mainScreen].bounds.size.height );
NSLog(@"The width is %f ", [UIScreen mainScreen].bounds.size.width);
if([UIScreen mainScreen].bounds.size.height == 568){
[nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics: UIBarMetricsDefault];
} else{
// Regular iPhone
[nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav_classic.png"] forBarMetrics: UIBarMetricsDefault];
}
}
return nav;
}
我想知道导航图像,nav.png和条件的大小,以便我可以为所有三个设备工作。
因为我使用320x44用于导航经典,但它在设备中看起来很小 iPhone(Retina 3.5英寸) 因此,当我使用nav.png时,它看起来更大 iPhone
1。什么是UINavigationBar的适当大小?
2。什么是使用它们的正确逻辑?
由于
答案 0 :(得分:1)
iphone 3.5视网膜和iphone 4视网膜导航栏的大小没有区别。此视网膜设备的图像的实际尺寸为640x88。您还可以为导航栏制作两个图像,一个为320x44(非视网膜设备),另一个为640x88。您必须将此图像命名为NavImage.png和NavImage@2x.png,这样os将自动使用正确的图像。
答案 1 :(得分:0)
[[UINavigationBar appearance]setBackgroundImage:[UIImage imageNamed:@"NavBar-iPhone.png"]forBarMetrics:UIBarMetricsDefault];
使用此代码将背景图像设置为导航栏无需担心尺寸iphone 3.5,iphone 4会自动调整。