1

我为 ios 4.0 开发了一个 ios 应用程序。那是基于导航的应用程序。现在我希望它也支持 iPhone-5 我想我在检查设备版本后更改了 xib,我面临问题 xib 已更改但它的视图高度未更改.如果其他人面临这个问题怎么可能请与我分享想法。谢谢。

4

2 回答 2

1

在应用程序代表: -

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{



CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;

//----------------HERE WE SETUP FOR IPHONE 4/4s/iPod----------------------

if(iOSDeviceScreenSize.height == 480){


   self.viewController = [[ViewController alloc]   initWithNibName:@"ViewController_4inch" bundle:nil];

    NSLog(@"iPhone 4: %f", iOSDeviceScreenSize.height);

}

//----------------HERE WE SETUP FOR IPHONE 5----------------------

if(iOSDeviceScreenSize.height == 568){

    self.viewController = [[ViewController alloc]   initWithNibName:@"ViewController_5inch" bundle:nil];
     NSLog(@"iPhone 5: %f", iOSDeviceScreenSize.height);

}

 return YES;
 }

其作品 !!!!!!

于 2013-04-09T06:10:00.153 回答
0

将 iOS 6 设置为 Base SDK 并使用 Auto Layout 功能制作可以针对所有类型的屏幕进行缩放的屏幕。您需要 Xcode 4.5 来执行此操作。

在此处开始使用自动布局:http:
//www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
http://www.raywenderlich.com/20897/beginning-auto-layout-第 2 部分,共 2 部分

如果您仍想支持 iOS 4.0,请为不同的屏幕尺寸创建单独的 .xib 文件,并在启动时适当加载它们。

要根据您的屏幕大小加载不同的 nib 文件,在您的应用程序委托中,您需要在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中添加/替换以下代码

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_4inch" bundle:nil];
} else {
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
}

ViewController_4inch为 iPhone 5 屏幕设计的 nib 文件的名称在哪里

于 2012-12-10T07:11:23.627 回答