【问题标题】:Made iPhone app with 4" dimensions, how to make universal?制作4英寸尺寸的iPhone应用程序,如何制作通用?
【发布时间】:2014-06-17 22:11:06
【问题描述】:

我为 iPhone 制作了一个应用程序,所有的东西都有 iPhone5 4" 尺寸。 模拟器运行良好,在我的 iPhone 上运行良好。

现在,我知道要在 iPhone 3.5" 屏幕和 iPad 上发布游戏,我必须在同一个项目文件中创建文件。

我有:

  1. iphone4":

    • main.h
    • main.m
    • iphone4".storyboard
    • 其他.h
    • 其他.m
  2. Iphone3.5":

    • main1.h
    • main1.m
    • iphone3.5".storyboard
    • 其他1.h
    • 其他1.m
  3. iPad:

    • main2.h
    • main2.m
    • ipad.storyboard
    • other2.h
    • other2.m

我有几个问题:

  1. 下载器设备如何检测要使用的文件夹 游戏出处?

  2. 当我在 3.5" 中运行模拟器时,尽管在 3.5" 设置中创建了应用程序,但它仍然会获取在 4" 文件夹中创建的情节提要。但是,当我运行 iPad 模拟器时,它会在其中运行情节提要iPad 文件夹。简而言之,我如何让 Xcode 检测何时应该在模拟器中使用 4" 尺寸或何时使用 3.5" 尺寸?

  3. 如果我将应用程序作为 4 英寸游戏在 App Store 上发布,任何在 iPhone4 或更早版本上下载它的人仍然可以玩它(即它会自动重新缩放吗?)

很高兴通过 Skype 或其他媒体进一步讨论。将不胜感激。

亲切的问候,

最大

【问题讨论】:

  • 不,您不需要所有这些文件。您的视图只需要在运行时检测适当的屏幕尺寸。拥有单独的 iPad/iPhone 故事板是正常的,但您绝对不需要所有内容的 3 个副本。

标签: ios iphone ipad


【解决方案1】:

您正在使用 Storyboard,所以这是您的应用委托

- (UIStoryboard *)grabStoryboard {

UIStoryboard *storyboard;

// detect the height of our screen
int height = [UIScreen mainScreen].bounds.size.height;

if (height == 480) {
    storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    // NSLog(@"Device has a 3.5inch Display.");
} else {
    storyboard = [UIStoryboard storyboardWithName:@"MainRetina" bundle:nil];
    // NSLog(@"Device has a 4inch Display.");
}

return storyboard;

}

然后在您看来确实加载了这个:

UIStoryboard *storyboard = [self grabStoryboard];

如果您使用的是 iPad,请为此添加大小并将您的故事板重命名为该效果

【讨论】:

    【解决方案2】:

    您不必也不应该为不同的平台拥有不同的源文件。让 3.5" 和 4" iPhone/iPod 从同一个故事板运行非常简单。

    您通常确实希望 iPad 和 iPhone 使用不同的故事板。项目中的 info 选项卡包含两个文件名的空格,并且在运行时,应用程序决定自动加载哪一个。

    不过,iOS 8 中的规则正在发生变化。如果这是一个仍在开发中的新应用程序,您可能需要考虑使用 iOS 8 中内置的新自适应 UI 功能。Apple 已经彻底改变了他们期望我们处理这些东西的方式,以及我们的方式。 re 应该处理设备旋转(简短的回答:我们不应该再处理旋转了。相反,我们会收到有关视图中大小更改的通知,并且我们应该对这些做出响应。现在有“大小类”每个维度都有“常规”和“紧凑”状态,您可以教您的应用如何以常规和紧凑尺寸的不同组合进行布局。

    Apple 强烈暗示即将推出新的设备尺寸,如果我们想在新设备上正常工作,我们应该采用新的做事方式。很可能任何新设备都只会运行 iOS 8,并且将依赖于新的自适应 UI API 来进行 UI 布局。我不知道他们与旧设备的兼容性如何,但它可能会有限制。

    【讨论】:

    • 请您提供一些关于如何让应用程序在同一个故事板上运行 3.5" 和 4" 的见解?谢谢,马克斯
    • 您可以使用 AutoLayout 或“struts and springs”(调整大小规则的旧样式)来完成。这取决于您使用的是哪个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2012-09-21
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多