【问题标题】:Separate storyboards for iPhone/iPhone Retina/iPad/iPad RetinaiPhone/iPhone Retina/iPad/iPad Retina 的独立故事板
【发布时间】:2012-03-19 16:07:53
【问题描述】:

我有一个听起来很奇怪的问题,但作为一个新手,我猜没有问题是一个愚蠢的问题......

我是否需要为所有四种设备提供单独的故事板?

现在我有两个故事板,一个用于 iPhone,一个用于 iPad,但我得到的视图框架始终显示设备的大小,而不是视网膜设备。因此,例如在 iPhone 上,我的视图大小是 320x460,而对于 iPhone Retina,它显示的大小相同...... iPad 也是如此。

谢谢

【问题讨论】:

  • 别搞错了,那里有很多愚蠢的问题!说没有愚蠢的问题,只有愚蠢的答案的人是白痴。然而,这是一个很好的问题!

标签: iphone objective-c xcode ipad


【解决方案1】:

不,你没有。是的,从开发人员的角度来看,这是相同的分辨率。 iOS 将进行所有调整。唯一重要的问题是,如果您在应用程序包中使用图像(如选项卡图标),则必须添加一个以不为视网膜(具有双分辨率)保留一个。例如,如果您有 24x24px 的 icon.png,则必须添加 48x48px 的 icon@2x.png。 iOS 会自动将您的图标替换为视网膜设备中的“@2x”文件名。

【讨论】:

  • 好的,明白了。这就是我的想法,但是对于图像,如果指定了,它将始终选择 @2x 文件或 ~ipad 文件。另一种说法是,在某些情况下我需要检测设备并更改文件名两个引用不同的图像?
  • 我不确定在运行时是否会检测到例如您下载的图像。但我敢肯定,当您检测到视网膜显示器时,您可以指定视网膜就绪图像。这个答案可以帮助你检测stackoverflow.com/a/3294120/1014773
  • 谢谢,我会看看。我不是在谈论我下载的图像,只是来自我的主包的图像。 UIImage 是否总是会选择正确的图像,这确实是个问题。
  • 啊,是的。确定图像是否来自您的捆绑包,如果您在文件名中添加“@2x”,iOS 将在设备为 Retina 的情况下使用它
【解决方案2】:

您可以区分应用程序的图形内容,但目前我认为您不能区分视图/情节提要。

如果您想利用 Retina 屏幕的分辨率,可以使用 @2x 技巧。

这由以下组成,我们以应用程序图标为例_

  • Icon.png(iPhone 的默认图标为 57x57 像素)
  • Icon@2x.png(114x114 像素视网膜显示屏的 iPhone 的默认图标)

  • Icon~iPad.png(ipad 的默认图标,72x72 像素)

  • Icon~iPad@2x.png(144x144 像素的视网膜显示屏的 ipad 的默认图标)

此技巧对您的所有图形内容都很有用,并且在您制作界面和代码时不需要额外的代码。当您必须指定要使用的图形文件时,请始终指定没有“@2x”的文件。

希望对你有帮助。

【讨论】:

  • 是的,始终使用应用程序图标的示例...但是这种技术是否一直有效?这是否总是适用于 UIImage,还是我需要指定正确图像的时间?
  • 它始终有效,不需要额外的代码来更改图像。你只引用普通图像,其余的由 iOS 完成;)如果你有兴趣下载这个示例代码,你会看到它的实际效果:(link)angeldiaz.es/idec-upf/leccion07/Example37.tar.gz 记得更改模拟器目标以查看它是否正常工作。跨度>
  • 这还不够。并非所有 UIImage 都有关联的文件名。您可以从图形上下文中获取 UIImage ,在这种情况下,您必须处理比例值的半/双分辨率问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 2015-09-20
  • 1970-01-01
相关资源
最近更新 更多