iPhone 应用程序到 iPad 应用程序
Posted
技术标签:
【中文标题】iPhone 应用程序到 iPad 应用程序【英文标题】:iPhone app to iPad app 【发布时间】:2011-11-30 04:13:10 【问题描述】:我很久以前就创建了一个 iPhone 应用程序。现在我想把它转换成一个 iPad 应用程序(代码或多或少保持不变......我只想重新设计 iPad 大小的 xib)
现在我正在使用 XCode 4,打开应用程序后,我将设备更改为 iPad。但我的 .xib 仍然显示 iPhone 大小。 它创建了一个 iPad 文件夹(就像 Classes/Resources/Products...)
另外要补充的是,该应用现在打开了一个 iPad 模拟器,但假设我有一个 UIWebView,它只是延伸到 iPhone 大小(如在 IB 中)而不是完整的 iPad 大小...
如何以及在哪里为 iPad 重新设计 xib?当我们将设备从 iPhone 更改为 iPad 时,要进行哪些更新?此外,我猜 iPhone 应用程序可以在 iPad 上运行(使用 2x),但反过来则不然。请确认。
谢谢。
【问题讨论】:
尽管在创建过程中选择了“for iPad”,但新创建的 xib 是否以 iPhone 尺寸显示? 不...xib 是旧的...我是第一次这样做...所以不确定它是否会自动转换为 iPad 尺寸... 【参考方案1】:您应该考虑创建一个通用应用程序,该应用程序基本上具有用于 iPhone 和 iPad 的共享代码和库,但不同的视图层(视图或 XIB)。
在该模型中,您应该有不同的接口。范式是不同的——在 iPhone 中,你有很小的空间,所以你有可以钻入和弹出的导航器。在 iPad 中,您拥有更多空间,因此您拥有带有弹出控件的主/细节拆分器视图。正如您所指出的,即使是 Web 视图也至少有不同的大小。
如果您从头开始,您可以创建一个通用应用并了解其布局。文件,新项目,ios,选择应用类型,下一步。对于设备系列,请选择通用。
如果您正在转换,那里有一些资源。这里有一些:
http://useyourloaf.com/blog/2010/4/7/converting-to-a-universal-app-part-i.html
How to convert iPhone app to universal in xcode4, if I previously converted, but deleted MainWindow-iPad?
Convert simple iPhone app to Universal app
【讨论】:
所以,通用应用程序是指同一个应用程序可以同时在 iPhone 和 iPad 上运行...这两个设备之间的唯一区别是 .xib 吗? 此外,当我看到 MainWindow-iPad.xib 时,我还有 2 个其他具有 iPhone 布局的 .xib 文件(ListViewController.xib 和 DetailViewController.xib)......所以我需要手动重新创建它们适合 iPad 吗? 是的——就是这样。这也是 MVC 背后的关键原则之一,最好将几乎所有代码都从视图层中取出。如果您可以将大部分业务逻辑推送到模型/共享 API,那么重新创建精简视图并不是什么大问题。当然,如果您有一个适合 iPad 或 iPhone 的视图(调整大小并很好地处理大小布局),没有什么说您不能从 iPad 或 iPhone 视图启动它。但是,在通用应用程序中,您可以明确控制在每个设备上显示的内容。 我对阅读您引用的各种链接感到有些困惑......我的简单问题是,如果我从我这边创建一个通用应用程序(在 iPod/iPhone/iPad 上运行的单个应用程序),这可以通过更新 XCode 设置(Build/plist 等)来完全处理,并且根本不需要更改任何代码......这是正确的吗?我的视图很简单(主要是 UITableView、UIWebView 和 iAd) 另外,useyourloaf.com/blog/2010/4/7/… 上的文章似乎已经很老了(一年多以前)......所以希望它现在也适用于 XCode 4..【参考方案2】:我发现在以前的(3.2?)XCode 附带的单独的 Interface Builder 中打开 xib 并使用其“使用自动调整大小掩码转换为 iPad”选项最容易。然后我在项目中包含新的分离 XIBS 并进行条件加载(例如 - 使用 UI_USER_INTERFACE_IDIOM() makro 加载一个或另一个 xib。)
【讨论】:
以上是关于iPhone 应用程序到 iPad 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
这是不是可以从 xcode 将 iphone 应用程序运行到 ipad 物理设备中?
将具有相同 iPhone 应用名称的 iPad 应用上传到 Appstore