2012-09-05 172 views
0

我为iPhone创建了一个应用程序,现在我想使它具有通用性,能够在iPad上运行全屏。从iPhone应用程序转换为通用应用程序

该应用程序是40MB大,并显示存储在包中的许多图像。他们的大小适合iPhone屏幕。管理这个最好的方法是什么?

如果我为iPad添加更大的图像,应用程序将非常大。我可以为iPad内容创建一个源文件夹,并为iPhone内容创建一个源文件夹,然后在客户购买应用程序时下载正确的文件夹?我对这一切感到困惑,而我的搜寻并没有带来什么结果。

我还读到,我可以为iPhone和iPad故事板场景使用相同的类(.h/.m)。那么对于iPad而言,不同的代码又该如何管理呢?那是什么样的代码?我对此感到困惑,一些指导会很棒。

我使用Xcode 4与故事板和应用程序是非常基本的,只是一些UITableViews和UIViews与按钮,文本框,图像和标签和一些行动表,这几乎是..和一个.plist来管理数据。

到目前为止,我刚刚将目标更改为“Universal”,并为iPad添加了故事板文件,并在开始处理某些事情之前等待一些基本指南。希望你了解我的问题。谢谢。 :-)

回答

3

如果我为iPad添加较大的图像,应用程序将非常大

它将但它是可管理的,你会包括所有在捆绑两个设备的图像,只要尝试压缩他们最好的你可以不扭曲他们。

注意:减少应用程序消耗的存储量的一个很好的策略是尽可能平铺背景图像......特别是在iPad Retina上。

那么对于iPad而言,不同的代码又如何呢? 这个怎么办?那是什么样的代码?我有点困惑于 这个,一些指导将是伟大的。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
    //do something for iPad 
}else{ 
    //do something for iPhone/iPod Touch 
} 

这是你可以单独只应运行特定的设备类型代码。您不必在任何情况下都使用此功能,或多或少与任何与对象尺寸有关的事物或与只能在某个设备上使用的对象(例如:UIPopOverController)一起使用。

两个用户界面成语:UIUserInterfaceIdiomPad & UIUserInterfaceIdiomPhone

此外,这是图像的命名方案,你应该使用:

  • ImageName.png - 适用于iPhone/iPod的
  • ImageName @ 2x.png - 适用于iPhone/iPod视网膜
  • ImageName〜ipad.png - 适用于iPad
  • ImageName @ 2x〜ipad 。png - 对于iPad视网膜

如果所有这些图像命名正确,这将大大简化在应用程序中使用图像的方式。

UIImage *myImage = [UIImage imageNamed:@"ImageName"]; 

只需使用“ImageName”,iOS将自动使用根据设备类型和分辨率正确的图像。

+0

谢谢。但是,接下来我必须对已经很长的代码片段的几乎所有部分做出if语句。 (为iPad显示另一个图像等)。如果我只是为iPad版创建一个新项目,那么客户仍然能够在两种平台上都获得应用程序,而无需为它们购买应用程序? – ingenspor

+1

那么如果你不想使用一堆if,另一种方法是为不同的设备创建不同的类,但这样做并不现实。不,如果你创建和上传两个不同的项目,那么用户将不得不购买两个不同的应用程序,而在通用包中,他们从任何设备购买一次,并可以在任何设备上重新下载和使用它。 –

+0

好吧,非常感谢,非常感谢! – ingenspor

相关问题