iOS - 将 iPhone Build 转换为 iPad

Posted

技术标签:

【中文标题】iOS - 将 iPhone Build 转换为 iPad【英文标题】:iOS - Converting iPhone Build to iPad 【发布时间】:2012-08-07 17:43:18 【问题描述】:

我构建了一个应用程序,该应用程序将构建为仅限 iPhone 的应用程序。

现在,我被告知现在必须使该应用程序具有通用性。我也必须让它与 iPad 兼容(仅在纵向模式下)。我现在一直在寻找我的选择,因为这个项目中的 XIB 负载了大量的对象,所以以编程方式分配坐标将是一件痛苦的事情。

我正在寻找最好、最快的方法,以使这个 iPhone 应用程序也成为与 iPad 兼容的应用程序。

PS:没有 mainwindow.xib 文件,因为应用程序是使用 XCode 4.3 构建的,它不会创建 MainWindow.xib 文件。

提前谢谢你。

编辑:我为 iPad 制作了所有 XIB 的重复 XIB。现在,我正在尝试使用命名约定,它告诉我将文件名后缀更改为 MyiPadXIB~ipad.xib,当应用程序在 iPad 上运行时,它将自动采用该 XIB。这似乎没有发生。

当我在 iPad 中打开应用程序时,只出现一个小窗口(仅 iPhone 应用程序在 iPad 上运行时出现的窗口)。

有什么解决办法吗?

【问题讨论】:

你是说你不想用 iPad 版本重新创建所有的 xib。 如果这是唯一也是最好的方法,那么我创建单独的 XIB 也没有问题。 是的,我会创建单独的视图控制器。下面欧文的回答应该会有所帮助。 那个应用的方法是什么? ipad 版本应该只是看起来像 iphone,但只是按比例放大吗?然后您可以如下所示查询设备的类型并手动进行缩放,而无需额外的 xib。 【参考方案1】:

我采用了一种非常简单的方法,我只需通过构建设置 > 目标(iPhone)> 右键单击​​并选择重复来创建所有 XIB 的重复 XIB。

然后我会以这种格式更改重复 xib 的名称:“iPhone XIB 名称”~ipad.xib。

然后系统会根据使用的设备自动选择 XIB。

【讨论】:

【参考方案2】:

据我所知(可能有我不知道的更快/更好的方法)

您将为 ipad 创建单独的 xib 文件

当你初始化你的视图控制器时,你会检查你在什么设备上,就像这样

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
        self.serverSettingsViewController = [[ServerSettingsViewController alloc] initWithNibName:@"ServerSettingsViewController_iPhone" bundle:nil];
        self.motionJpegViewController = [[MotionJpegViewController alloc] initWithNibName:@"MotionJpegViewController_iPhone" bundle:nil];
     else 
        self.serverSettingsViewController = [[ServerSettingsViewController alloc] initWithNibName:@"ServerSettingsViewController_iPad" bundle:nil];
        self.motionJpegViewController = [[MotionJpegViewController alloc] initWithNibName:@"MotionJpegViewController_iPad" bundle:nil];
    

然后加载你的 iphone 或 ipad xib 文件(仅供参考,确保 xib 视图对于 ipad 来说足够大)

【讨论】:

以上是关于iOS - 将 iPhone Build 转换为 iPad的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 将 *NSMutableString 转换为 UIImage

Xcode 7.3 如何将我现有的 iPhone 应用程序转换为通用应用程序,以便在 iOS 中与 iPad 一起使用

如何将基于视图的 iOS 项目转换为通用版本?

如何将 iPhone-captured-video 转换为 HTTP Live Streaming 文件?

将 iPhone/iPad 应用程序转换为 Android [关闭]

将ios项目转换为android