【问题标题】:How to develop or migrate apps for iPhone 5 screen resolution?如何为 iPhone 5 屏幕分辨率开发或迁移应用程序?
【发布时间】:2012-10-05 00:10:45
【问题描述】:

新款 iPhone 5 显示屏具有新的纵横比和新的分辨率(640 x 1136 像素)。

开发新的应用程序或将现有的应用程序转换为新的屏幕尺寸需要什么?

要使应用程序“通用”旧显示器和新的宽屏宽高比,我们应该记住什么?

【问题讨论】:

    标签: ios iphone screen iphone-5


    【解决方案1】:
    1. 下载并安装最新版本的Xcode
    2. 为您的应用程序设置启动屏幕文件(在目标设置的常规选项卡中)。这是您可以使用任何屏幕的完整尺寸的方法,包括 iOS 9 中的 iPad 拆分视图尺寸。
    3. 测试您的应用,希望不要做任何其他事情,因为如果您正确设置了自动调整大小的掩码或使用了自动布局,一切都会神奇地工作。
    4. 如果没有,请调整视图布局,最好使用自动布局。
    5. 如果您需要专门针对较大的屏幕执行某些操作,那么您似乎必须检查 [[UIScreen mainScreen] bounds] 的高度,因为似乎没有特定的 API。从 iOS 8 开始,还有一些尺寸类可以将屏幕尺寸抽象为垂直和水平的常规或紧凑型,建议采用这种方式来调整您的 UI。

    【讨论】:

    • 也许这是一个投机取巧的事情。新的分辨率和纵横比?新的自转?不!实际上,更多的自转控制可能会更好。
    • 值得注意的是 [UIImage imageNamed:@"background.png"] 仍然只会加载 "background.png" 或 "background@2x.png",它不会加载 "background-568h" @2x.png" 如果存在。
    • 添加“Default-568h@2x.png”是否足够,或者我们可以/应该调整的构建设置中是否有任何额外的选项?
    • @Lukasz 足以(也是唯一的方法)支持 1136 像素高度。您的应用能否正确拉伸取决于您如何设置视图,但即使您对所有内容都进行了硬编码,设置自动调整大小的蒙版或自动布局也不应该做很多工作。
    • @FilipRadelic - 您指定的分辨率,即 1136*960,是 1136 * 640..??..
    【解决方案2】:

    如果您有一个为 iPhone 4S 或更早版本构建的应用程序,它会在 iPhone 5 上运行 letterboxed。

    要使您的应用适应新的更高屏幕,您要做的第一件事是将启动图像更改为:Default-568h@2x.png。它的大小应为 1136x640 (HxW)。 是的,在新的屏幕尺寸中使用默认图像是让您的应用占据整个新 iPhone 5 屏幕的关键

    (请注意,命名约定仅适用于默认图像。命名另一个图像“Image-568h@2x.png”不会导致它被加载到“Image@2x.png”的位置。如果您需要为不同的屏幕尺寸加载不同的图像,您必须以编程方式完成。)

    如果你非常幸运,可能就是这样......但很可能,你必须采取更多步骤。

    • 确保您的 Xib/视图使用自动布局来调整自身大小。
    • 使用弹簧和支柱调整视图大小。
    • 如果这对您的应用程序来说还不够好,请设计您的 xib/storyboard 一种特定的屏幕尺寸并以编程方式重新定位 其他。

    在极端情况下(当以上都不满足时),设计两个 Xib 并在视图控制器中加载适当的一个。

    检测屏幕尺寸:

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        CGSize result = [[UIScreen mainScreen] bounds].size;
        if(result.height == 480)
        {
            // iPhone Classic
        }
        if(result.height == 568)
        {
            // iPhone 5
        }
    }
    

    【讨论】:

    • 嗨 sanjay,因为我们必须确定它是 iphone 5 还是更早版本,所以必须相应地调整所有内容,就像我说我有一个高度为 367 的带有导航栏和标签栏的表格视图,我会必须为 iphone 5 调整大小
    • iPod touch 怎么样?下一代 iPhone 怎么样?应该是指屏幕尺寸,3.5inch/4inch 不是 iPhone/iPhone5
    • 另一个需要注意的问题是 viewDidLoad 在你的 xib 调整大小之前被调用,所以如果你基于 nib 中的东西进行任何计算,请注意位置可能如何变化(或者说viewWillAppear 中的计算)。
    【解决方案3】:

    唯一真正需要做的就是将名为“Default-568h@2x.png”的启动图像添加到应用程序资源中,并且在一般情况下(如果你足够幸运的话)应用程序将正常运行。

    如果应用不处理触摸事件,请确保按键窗口的大小合适。解决方法是设置正确的框架:

    [window setFrame:[[UIScreen mainScreen] bounds]]
    

    迁移到 iOS 6 时还有其他与屏幕尺寸无关的问题。请阅读iOS 6.0 Release Notes 了解详情。

    【讨论】:

      【解决方案4】:

      有时(对于情节提要前的应用程序),如果布局要足够不同,则值得根据设备指定不同的 xib(请参阅this question - 您需要修改代码以处理 iPhone 5 ) 在 vi​​ewController init 中,因为如果您需要不同的图形,那么再多的使用自动调整大小的掩码都不会起作用。

      -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
      
          NSString *myNibName;
          if ([MyDeviceInfoUtility isiPhone5]) myNibName = @"MyNibIP5";
          else myNibName = @"MyNib";
      
          if ((self = [super initWithNibName:myNibName bundle:nibBundleOrNil])) {
      
      
      ...
      

      这对于针对旧 iOS 版本的应用很有用。

      【讨论】:

      • +1 然而,需要担心的是未来的兼容性。目前这段代码并不安全,因为它只考虑了 iPhone 5 设备,检查屏幕尺寸会是更安全的选择。
      • True - 这可能是返回设备类型的实用程序的一部分 - 这只是展示如何使用不同笔尖的示例,而不是真正获取设备。
      【解决方案5】:

      在这里您可以找到一个很好的教程(对于 MonoTouch,但您也可以将这些信息用于非 MonoTouch 项目):
      http://redth.info/get-your-monotouch-apps-ready-for-iphone-5-ios-6-today/

      1. 为您的初始/默认屏幕(640 x 1136 像素)创建一个名为“Default-568h@2x.png”的新图像 p>

      2. iOS 模拟器中,进入硬件 -> 设备菜单,然后选择“iPhone (Retina 4-inch)

      3. 创建其他图像,例如背景图片

      4. 检测 iPhone 5 以加载您的新图像:

      public static bool IsTall
      {
          get {
              return UIDevice.currentDevice.userInterfaceIdiom
                          == UIUserInterfaceIdiomPhone
                      && UIScreen.mainScreen.bounds.size.height
                          * UIScreen.mainScreen.scale >= 1136;
          }
      }
      

      private static string tallMagic = "-568h@2x";
      public static UIImage FromBundle16x9(string path)
      {
          //adopt the -568h@2x naming convention
          if(IsTall())
          {
              var imagePath = Path.GetDirectoryName(path.ToString());
              var imageFile = Path.GetFileNameWithoutExtension(path.ToString());
              var imageExt = Path.GetExtension(path.ToString());
              imageFile = imageFile + tallMagic + imageExt;
              return UIImage.FromFile(Path.Combine(imagePath,imageFile));
          }
          else
          {
              return UIImage.FromBundle(path.ToString());
          }
      }
      

      【讨论】:

        【解决方案6】:

        通过 XIB 迁移 iPhone5 和 iPhone4 很容易......

        UIViewController *viewController3;
        if ([[UIScreen mainScreen] bounds].size.height == 568)
        {
            UIViewController *viewController3 = [[[mainscreenview alloc] initWithNibName:@"iphone5screen" bundle:nil] autorelease];               
        }    
        else
        {
             UIViewController *viewController3 = [[[mainscreenview alloc] initWithNibName:@"iphone4screen" bundle:nil] autorelease];
        }
        

        【讨论】:

          【解决方案7】:

          我解决了这个问题here。只需在图像中添加 ~568h@2x 后缀,在 xib 中添加 ~568h。无需更多运行时检查或代码更改。

          【讨论】:

          • 只需在项目中添加此类。您不需要编写额外的代码。例如,您有一个带有背景图像的 xib 文件,分辨率为 320x480、640x960、640x1136(iPhone 3、iPhone 4、iPhone 5)。只需设置正确的自动调整大小掩码并将图像命名为 image.png、image@2x.png、image~568h@2x.png。
          • @ShimanskiArtem 但我注意到有些组件跑到了另一个位置!,你知道吗????
          • 检查您的自动调整蒙版。我看不出其他原因。
          【解决方案8】:

          我添加了新的默认启动图像并(查看了其他几个 SE 答案...)确保我的情节提要全部自动调整大小和子视图,但 4 英寸的视网膜仍然是信箱。

          然后我注意到我的信息列表中有一个“Launch image”的行项目设置为“Default.png”,因此我将其删除并且不再神奇地使用信箱出现了。希望这可以拯救其他人,就像我所忍受的一样疯狂。

          【讨论】:

            【解决方案9】:

            我想,它不会在所有情况下都有效,但在我的特定项目中,它避免了我重复 NIB 文件:

            common.h 的某个地方,您可以根据屏幕高度进行这些定义:

            #define HEIGHT_IPHONE_5 568
            #define IS_IPHONE   ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
            #define IS_IPHONE_5 ([[UIScreen mainScreen] bounds ].size.height == HEIGHT_IPHONE_5)
            

            在您的基本控制器中:

            - (void)viewDidLoad
            {
                [super viewDidLoad];
                if (IS_IPHONE_5) {
                    CGRect r = self.view.frame;
                    r.size.height = HEIGHT_IPHONE_5 - 20;
                    self.view.frame = r;
                }
                // now the view is stretched properly and not pushed to the bottom
                // it is pushed to the top instead...
            
                // other code goes here...
            }
            

            【讨论】:

              【解决方案10】:

              constants.h 文件中,您可以添加以下定义语句:

               #define IS_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad 
               #define IS_IPHONE UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
               #define IS_WIDESCREEN (fabs((double)[[UIScreen mainScreen] bounds].size.height - (double)568) < DBL_EPSILON) 
               #define IS_IPHONE_5 (!IS_IPAD && IS_WIDESCREEN)
              

              【讨论】:

                【解决方案11】:

                要确定您的应用是否支持 iPhone 5 Retina,请使用以下命令: (返回显示类型、4S Retina 等可能会更稳健,但正如下面所写,它只会在 iPhone 支持 iOS5 Retina 作为 YES 或 NO 时返回)

                在一个普通的“.h”文件中添加:

                BOOL IS_IPHONE5_RETINA(void);
                

                在一个普通的“.m”文件中添加:

                BOOL IS_IPHONE5_RETINA(void) {
                    BOOL isiPhone5Retina = NO;
                    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
                        if ([UIScreen mainScreen].scale == 2.0f) {
                            CGSize result = [[UIScreen mainScreen] bounds].size;
                            CGFloat scale = [UIScreen mainScreen].scale;
                            result = CGSizeMake(result.width * scale, result.height * scale);
                
                            if(result.height == 960){
                                //NSLog(@"iPhone 4, 4s Retina Resolution");
                            }
                            if(result.height == 1136){
                                //NSLog(@"iPhone 5 Resolution");
                                isiPhone5Retina = YES;
                            }
                        } else {
                            //NSLog(@"iPhone Standard Resolution");
                        }
                    }
                    return isiPhone5Retina;
                }
                

                【讨论】:

                  【解决方案12】:

                  首先创建两个 xib 并将所有代表、主类附加到xib,然后你可以在你的appdelegate.m 文件中放入下面提到的这个条件

                  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
                  
                      if ([[UIScreen mainScreen] bounds].size.height == 568)
                          {
                  
                          self.ViewController = [[ViewController alloc] initWithNibName:@"ViewControlleriphone5" bundle:nil];
                          }
                  
                          else
                          {
                               self.ViewController = [[ViewController alloc] initWithNibName:@"ViewControlleriphone4" bundle:nil];
                  
                          }
                  

                  您可以根据您的要求在程序中的任何位置使用它,即使在您的ViewController 课程中也是如此。最重要的是你为iphone 4(320*480) and iphone 5(320*568)创建了两个单独的xib文件

                  【讨论】:

                    【解决方案13】:

                    在单例类中尝试以下方法:

                    -(NSString *)typeOfDevice
                        {
                            if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
                            {
                                CGSize result = [[UIScreen mainScreen] bounds].size;
                                if(result.height == 480)
                                {
                                    return @"Iphone";
                                }
                                if(result.height == 568)
                                {
                                    return @"Iphone 5";
                                }
                            }
                            else{
                                return @"Ipad";;
                            }
                    
                    
                            return @"Iphone";
                        }
                    

                    【讨论】:

                      【解决方案14】:

                      您可以使用Auto Layout 功能并使用 iPhone 5 屏幕分辨率创建设计,它适用于 4" 和 3.5" 设备,但在这种情况下,您应该对布局管理器有足够的了解。

                      【讨论】:

                      • 这不适用于不支持 iOS 6 的设备。
                      【解决方案15】:

                      在横向模式下检查 bounds568 将失败。 iPhone 5 仅在纵向模式下启动,但如果您想支持旋转,那么 iPhone 5 “检查”也需要处理这种情况。

                      这是一个处理方向状态的宏:

                      #define IS_IPHONE_5 (CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size, CGSizeMake(640, 1136)))
                      

                      “preferredMode”调用的使用来自我几个小时前阅读的另一篇帖子,所以我没有想出这个主意。

                      【讨论】:

                        【解决方案16】:

                        首先显示这张图片。在该图像中,您显示了对 Retina 4 支持的警告,因此请单击此警告并单击添加,以便您的 Retina 4 初始屏幕自动添加到您的项目中。

                        在您使用此代码之后:

                        if([[UIScreen mainScreen] bounds].size.height == 568)
                            {
                                // For iphone 5
                            }
                            else
                            {
                                // For iphone 4 or less
                            }
                        

                        【讨论】:

                          【解决方案17】:

                          我从来没有在任何设备上遇到过这样的问题,因为我有一个适用于所有人的代码库,没有任何硬编码值。我所做的是将最大尺寸的图像作为资源,而不是每个设备一个。例如,我将有一个用于视网膜显示并将其显示为适合纵横比的方式,因此它将是每台设备上的视图。 例如,在运行时决定按钮的框架。为此,我使用专利视图的 % 值,例如,如果我希望宽度为父视图的一半,则取父视图的 50%,并且同样适用于高度和中心。

                          有了这个,我什至不需要 xibs。

                          【讨论】:

                            【解决方案18】:

                            您可以使用此定义根据屏幕尺寸计算您是否使用 iPhone 5:

                            #define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
                            

                            然后使用简单的if 语句:

                                if (IS_IPHONE_5) {
                            
                                // What ever changes
                                }
                            

                            【讨论】:

                              【解决方案19】:

                              彼得,你真的应该看看 Canappi,它会为你做这一切,你所要做的就是指定这样的布局:

                              button mySubmitButton 'Sumbit' (100,100,100,30 + 0,88,0,0) { ... }
                              

                              Canappi 将从那里生成正确的 Objective-c 代码,用于检测应用程序运行的设备并将使用:

                              (100,100,100,30) for iPhone4
                              (100,**188**,100,30) for iPhone 5
                              

                              Canappi 的工作方式类似于 Interface Builder 和 Story Board 的组合,但它是文本形式。如果您已经有 XIB 文件,则可以转换它们,这样您就不必从头开始重新创建整个 UI。

                              【讨论】:

                              • 非常感谢 meta,我会看看这个,但我是一个非常新的程序员,真的很想学习如何在干净的 Objective-C 中处理这个。
                              【解决方案20】:

                              您可以手动检查屏幕尺寸以确定您使用的设备:

                              #define DEVICE_IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.height == 568)
                              
                              float height = DEVICE_IS_IPHONE5?568:480;
                              if (height == 568) {
                                  // 4"
                              
                              } else {
                              
                                  // 3"
                              
                              }
                              

                              【讨论】:

                                【解决方案21】:

                                您可以添加以下代码:

                                if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
                                        if ([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) {
                                            CGSize result = [[UIScreen mainScreen] bounds].size;
                                            CGFloat scale = [UIScreen mainScreen].scale;
                                            result = CGSizeMake(result.width * scale, result.height * scale);
                                
                                            if(result.height == 960) {
                                                NSLog(@"iPhone 4 Resolution");
                                            }
                                            if(result.height == 1136) {
                                              NSLog(@"iPhone 5 Resolution");
                                            }
                                        }
                                        else{
                                            NSLog(@"Standard Resolution");
                                        }
                                    }
                                

                                【讨论】:

                                • 这其实有点不对。任何运行 iOS 4.0 或更高版本的 iPhone 都会响应 UIScreen 上的 scale 选择器,并且您将遇到“标准分辨率”代码无法执行的情况。
                                【解决方案22】:

                                这是一个真正的通用代码,您可以创建 3 个不同的故事板:

                                设置您的项目通用模式,并将您的主故事 iPhone 设置为 iPhone5 故事板,将 ipad 主故事设置为 iPad 目标故事板,现在为 iphone 添加新的故事板目标并修改 iphone 4s 或更小的分辨率现在实现您的 AppDelegate.m

                                iPhone4/4s(与 3/3Gs 相同)一个用于 iPhone5 并使项目通用,具有新的 Storyboard 目标对于 iPad,现在在 AppDelegate.mdidFinishLaunching 下添加以下代码:

                                    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
                                        UIStoryboard *storyBoard;
                                
                                        CGSize result = [[UIScreen mainScreen] bounds].size;
                                        CGFloat scale = [UIScreen mainScreen].scale;
                                        result = CGSizeMake(result.width *scale, result.height *scale);
                                
                                //----------------HERE WE SETUP FOR IPHONE4/4s/iPod----------------------
                                
                                        if(result.height == 960){
                                            storyBoard = [UIStoryboard storyboardWithName:@"iPhone4_Storyboard" bundle:nil];
                                            UIViewController *initViewController = [storyBoard instantiateInitialViewController];
                                            [self.window setRootViewController:initViewController];
                                        }
                                
                                //----------------HERE WE SETUP FOR IPHONE3/3s/iPod----------------------
                                
                                        if(result.height == 480){
                                            storyBoard = [UIStoryboard storyboardWithName:@"iPhone4_Storyboard" bundle:nil];
                                            UIViewController *initViewController = [storyBoard instantiateInitialViewController];
                                            [self.window setRootViewController:initViewController];
                                        }
                                    }
                                
                                        return YES;
                                 }
                                

                                所以你已经为 iPhone 3/3Gs/4/4s/5 所有代的 iPod 和所有类型的 iPad 创建了一个通用应用程序

                                记得将所有IMG与myImage.pngmyImage@2x.png整合在一起

                                【讨论】:

                                  【解决方案23】:

                                  根据我的说法,处理此类问题并避免检查设备高度所需的几个条件的最佳方法是使用视图的相对框架或您要添加到视图中的任何 UI 元素,例如:如果您正在添加一些您希望在视图底部或标签栏上方的 UI 元素,那么您应该相对于视图的高度或相对于标签栏(如果存在)取 y 原点,并且我们有自动调整大小属性为好吧。我希望这对你有用

                                  【讨论】:

                                    【解决方案24】:

                                    您可以使用屏幕大小自动调整视图大小,而不是使用一组条件。

                                    int h = [[UIScreen mainScreen] bounds].size.height;
                                    int w = [[UIScreen mainScreen] bounds].size.width;
                                    self.imageView.frame = CGRectMake(20, 80, (h-200), (w-100));
                                    

                                    在我的情况下,我想要一个视图来填充顶部的一些输入字段和底部的一些按钮之间的空间,因此根据屏幕尺寸固定左上角和可变右下角。我的应用程序用相机拍摄的照片填充图像视图,所以我想要我能得到的所有空间。

                                    【讨论】:

                                      【解决方案25】:

                                      如果你需要将一个已经存在的app转换为universal,你需要选择对应的xib文件->show Utilities-> Show Size inspector。

                                      在 Size inspector 中你可以看到 Autosizing,通过使用这个工具你可以转换成现有的 iOS App。

                                      【讨论】:

                                        【解决方案26】:

                                        使用 xCode 5,在 Project>General 上选择“Migrate to Asset Catalog”。

                                        然后使用“Show in finder”找到您的启动图像,您可以将其虚拟编辑为 640x1136,然后将其拖到资产目录中,如下图所示。

                                        确保 iOS7 和 iOS6 R4 部分都有 640x1136 的图像。下次启动应用程序时,黑条将消失,您的应用程序将使用 4 英寸屏幕

                                        【讨论】:

                                          【解决方案27】:

                                          值得注意的一点 - 在新的 Xcode 中,您必须将此图像文件 Default-568h@2x.png 添加到资产中

                                          【讨论】:

                                            【解决方案28】:

                                            使用Auto Layout 功能查看视图。它会自动调整到所有分辨率。

                                            为控制器创建两个 xib,控制器名称带有后缀 ~iphone 或 ~ipad。在编译时,Xcode 会根据设备采用正确的 xib。

                                            如果您想为 iPhone 和 iPad 创建单个 xib,并且视图足够简单,可以移植到 iPhone 和 iPad,请使用尺寸类。

                                            【讨论】:

                                              【解决方案29】:

                                              在 iOS 设备和 iOS 模拟器上测试时出现了一个小问题。似乎模拟器(XCode 6.0.1)根据设备方向在[[UIScreen mainScreen] bounds].size 中提供了宽度和高度的切换值。

                                              因此,在确定正确的物理屏幕尺寸时,这可能是个问题。此代码还有助于区分所有 2014 年的 iPhone 型号:

                                              • iPhone4s
                                              • iPhone5(和 iPhone5s)
                                              • iPhone6(和 iPhone6+)

                                              也可以轻松更改以区分例如iPhone6 从 iPhone6+。

                                              - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
                                              
                                                  CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
                                              
                                                  if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
                                                  {
                                                      if (iOSDeviceScreenSize.width > 568 || // for iOS devices
                                                          iOSDeviceScreenSize.height > 568) // for iOS simulator
                                                      {   // iPhone 6 and iPhone 6+
                                              
                                                          // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone6
                                                          storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone6" bundle:nil];
                                              
                                                          NSLog(@"loaded iPhone6 Storyboard");
                                                      }
                                                      else if (iOSDeviceScreenSize.width == 568 || // for iOS devices
                                                               iOSDeviceScreenSize.height == 568) // for iOS simulator
                                                      {   // iPhone 5 and iPod Touch 5th generation: 4 inch screen (diagonally measured)
                                              
                                                          // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone5
                                                          storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:nil];
                                              
                                                          NSLog(@"loaded iPhone5 Storyboard");
                                                      }
                                                      else
                                                      {   // iPhone 3GS, 4, and 4S and iPod Touch 3rd and 4th generation: 3.5 inch screen (diagonally measured)
                                              
                                                              // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4
                                                          storyboard = [UIStoryboard story    boardWithName:@"MainStoryboard_iPhone" bundle:nil];
                                              
                                                              NSLog(@"loaded iPhone4 Storyboard");
                                                      }
                                                  }
                                                  else if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
                                                  {   // The iOS device = iPad
                                              
                                                      storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPadnew" bundle:nil];
                                              
                                                      NSLog(@"loaded iPad Storyboard");
                                                  }
                                              
                                                  // rest my code
                                              }
                                              

                                              【讨论】:

                                                【解决方案30】:

                                                我建议根据你的 UI 界面在你的应用程序中使用 Autoresizing Mask,这样会省很多麻烦,而且比为 iPhone 4 和 5 屏幕制作不同的 UI 更好。

                                                【讨论】:

                                                  猜你喜欢
                                                  • 2014-11-09
                                                  • 1970-01-01
                                                  • 2013-01-30
                                                  • 1970-01-01
                                                  • 2016-06-28
                                                  • 2012-10-02
                                                  相关资源
                                                  最近更新 更多