Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让iPhone和iPad都能在二进制文件中显示图形_Iphone_Ipad_Graphics - Fatal编程技术网

让iPhone和iPad都能在二进制文件中显示图形

让iPhone和iPad都能在二进制文件中显示图形,iphone,ipad,graphics,Iphone,Ipad,Graphics,我即将向AppStore提交我的第一个iPhone/iPad应用程序。我的应用程序的功能和用户界面在两个平台(iPhone和iPad)上都是相同的,但我想确保iPad用户获得的视图不是像素级的,而且充满了人工制品 我有两套图形:一套尺寸适合iPhone,另一套尺寸适合iPad。如何在一个univerisal二进制文件中使用这些图形,以便在每种类型的设备上使用适当的图形 一个详细的如何在这里将是伟大的 谢谢 编辑1 请记住,我说的不仅仅是图标,还有应用程序中的图形和启动屏幕。两者的屏幕比例不同,

我即将向AppStore提交我的第一个iPhone/iPad应用程序。我的应用程序的功能和用户界面在两个平台(iPhone和iPad)上都是相同的,但我想确保iPad用户获得的视图不是像素级的,而且充满了人工制品

我有两套图形:一套尺寸适合iPhone,另一套尺寸适合iPad。如何在一个univerisal二进制文件中使用这些图形,以便在每种类型的设备上使用适当的图形

一个详细的如何在这里将是伟大的

谢谢


编辑1

请记住,我说的不仅仅是图标,还有应用程序中的图形和启动屏幕。两者的屏幕比例不同,因此这不仅仅是缩放的问题。(如果我的想法错了,请指出:)

以下是你的答案:

编辑1:

您可以将“~iphone.png”或“~ipad.png”放在图像名称的末尾,以便为该设备加载图像

更多信息:

好吧,我想你想做一些事情,比如:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    self.image1 = [UIImage imageNamed:@"img1-ipad.png"];
} else {
    self.image1 = [UIImage imageNamed:@"img1-iphone.png"];
}
如果您要从代码中将图像分配到插座,则为


对于iPad的发布图像,请将文件Default-Landscape~iPad.png和Default-grait~iPad.png添加到项目中

无论好坏,通用应用程序的正常系统是提供两个独立版本的MainWindow NIB;iPad和iPhone有不同的纵横比和不同的像素密度,所以苹果希望你不仅仅考虑像素分辨率。您会注意到,在Xcode 4中,您的项目中有两组单独的“部署信息”,可以在其中指定单独的“主界面”文件。这也是您可以指定不同加载屏幕和图标的地方(通过拖放最简单;让Xcode确保文件名正确)

如果您的应用程序只是同一个接口,但经过了调整,那么提供指定相同类作为其所有者的不同NIB是很正常的。因此,例如,假设您有一个类,
MainMenuViewController
,其中充满了常见的iActions和iBouts,那么您可以创建MainMenuViewController-iPhone.xib和MainMenuViewController-iPad.xib。这两个类都将其类指定为MainMenuViewController,并包含连接到中的适当控件。在iPhone主窗口NIB中,您将其设置为从MainMenuViewController iPhone加载视图控制器;在iPad主窗口NIB中,您将其设置为从MainMenuViewController iPad加载。因为这两种方法都会导致实例化同一类的实例,并且都是为了使该类能够到达相关控件而设置的,所以您只需编写一次代码的模型部分

记住这一点,你所要做的就是在你的iPad笔尖中使用iPad图形,在iPhone笔尖中使用iPhone图形(自动处理@2x)

如果您需要执行任何运行时检查,您应该查看用户界面习惯用法。例如:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    // do something with the iPhone resources
}
else
{
    // do something with the iPad resources
}
有关用户界面习惯用法的文档,请参阅。假设您使用最新的SDK进行构建,那么即使在iPad推出之前的iOS版本上,SDK也始终可用且可以安全调用