【发布时间】:2014-03-18 13:58:28
【问题描述】:
您好,我有一个为 iphone 开发的应用程序,但我在 ipad 中也需要它,迁移的指南或步骤在哪里? 我在哪里可以找到 ipad 应用程序所需的图像分辨率和大小?
【问题讨论】:
您好,我有一个为 iphone 开发的应用程序,但我在 ipad 中也需要它,迁移的指南或步骤在哪里? 我在哪里可以找到 ipad 应用程序所需的图像分辨率和大小?
【问题讨论】:
在加载 nib 时,询问系统您正在运行什么类型的设备,然后加载适当的 nib 文件。使用这样的东西:
例如:
DetailController *detailController;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
detailController = [[DetailController alloc] initWithNibName:@"DetailController" bundle:nil];
} else {
detailController = [[DetailController alloc] initWithNibName:@"DetailController-ipad" bundle:nil];
}
您可能还想在不同的界面习惯用法中对细节视图控制器做一些不同的事情,例如将视图控制器放在 iPhone 上的 UINavigationController 和 iPad 上的 UISplitViewController 中。
另一种选择是为 iPhone 和 iPad 提供单独的 DetailController 实现。您的界面可能在两种界面习惯用法中都非常相似,而一个DetailController 会更好。或者,您的应用程序的 iPhone 和 iPad 版本的界面可能有很大不同,其中iPhoneDetailController 和iPadDetailController 更有意义。例如,较小的 iPhone 屏幕可能需要使用UINavigationController,但较大的 iPad 屏幕可以在一个屏幕上包含整个界面。
希望此信息对您有所帮助。
【讨论】:
您需要做的第一件事是让您的应用成为通用应用。为此,请按以下步骤操作:
执行此操作后,将出现将 iPhone 故事板复制到 iPad 的选项,选择复制,这样您就不必为 iPad 界面创建单独的故事板。 您可以为 iPhone 和 iPad 界面使用相同的类,并将您的按钮连接到相同的操作,iPhone 和 iPad 的插座。
对于图像,您需要图像支持 iPad 屏幕并使用 ~ipad 作为图像名称的后缀。 例如适用于 iPhone myimage.png 对于 iPad myimage~ipad.png。
希望这会对你有所帮助。
【讨论】:
如果您想为 iphone 和 ipad 使用不同的视图控制器,请使用 Irfan 建议的答案,或者如果您想使用相同的视图控制器 (不使用 xib 和情节提要) 不仅仅是根据设备更改框架...
if ([deviceModel rangeOfString:@"iPad"].location != NSNotFound){
// 设置与 ipad 相关的帧。
} 其他
{
// 设置与 iphone 相关的帧..
}
最好为 iPhone 和 iPad 使用单个视图控制器。如果您做了任何与逻辑相关的小更改,那么可能有机会忘记在另一个视图控制器中进行操作,这会有所帮助。同样会也缩小尺寸..
【讨论】:
将构建目标设置更改为 iPhone/iPad 或通用作为目标设备。
将运行时代码添加到检查中,例如:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
//your xib file added properly
...
}
要处理任何以编程方式创建的 UI 或绘图差异,请选择 iPhone 与 iPad xib 等。
添加适当的午餐图像、图标大小、默认图像等。
有用的链接
【讨论】: