【问题标题】:Scaling UIViewController and children to fit iPad or iPhone screens缩放 UIViewController 和孩子以适应 iPad 或 iPhone 屏幕
【发布时间】:2014-04-16 00:11:59
【问题描述】:

我正在为应用商店开发一款游戏,并且一直在使用 Sprite Kit。在 Sprite Kit 中,为了让游戏同时在 iPhone 和 iPad 上运行,我设置了 SKScene 的 scaleMode=SKSceneScaleModeAspectFill 并制作了屏幕比例,使其适合 iPhone 4 和 5 屏幕以及 iPad,并且效果很好。现在我正在为应用程序构建菜单,但我没有为此使用 Sprite Kit。相反,我使用的是集合视图、按钮、图像等。我没有看到类似的属性来根据我使用的设备将视图缩放到特定大小。由于我的所有按钮都使用图像,理想情况下,按比例缩放所有内容将是实现我正在寻找的最简单的方法。关于如何最好地进行此操作,我是否遗漏了一些东西?提前致谢。

【问题讨论】:

    标签: ios iphone ipad uiviewcontroller scale


    【解决方案1】:

    您正在描述自动布局。这是专门为此目的而设计的功能,即根据屏幕尺寸不同的事实来更改界面对象的尺寸和距离。

    https://developer.apple.com/library/ios/documentation/userexperience/conceptual/AutolayoutPG/Introduction/Introduction.html

    但是,对于 iPad 与 iPhone 的大小差异,如果您有一个通用应用程序,有时设计两个不同的界面是有意义的。很容易设置 Info.plist 或您的初始代码以加载正确的接口,具体取决于在运行时结果是哪种设备类型。事实上,如果您从制作通用应用程序开始,该项目将简单地附带两个故事板,一个用于 iPhone,一个用于 iPad,它们会自动加载。

    另一个选项(起初我没有想到,因为我不编写这类游戏)是通过应用视图变换来缩放超级视图(即将其transform 设置为缩放变换)。这会缩放视图的坐标系,因此它的所有子视图都会更改以匹配,就像绘图一样。

    【讨论】:

    • 是的,我熟悉自动布局,但我希望避免在每个控件上设置缩放比例。再加上它不仅仅是我想要改变的尺寸,因为其中许多都是我希望图像缩放的图像。这里的想法是避免必须有两个单独的接口,因为它们最终看起来相同。如果您查看大多数游戏,菜单通常只是按比例缩小,但我不确定最简单的方法。
    • 如果菜单只是一幅画,那么当你缩放它时,整个东西都会缩放。或者您可以通过应用缩放变换来缩放整个界面;我会将其添加到我的答案中。
    • 尚未对其进行编码,但您使用比例变换的建议看起来可以解决问题。谢谢!
    • 我很想知道你最终会做什么......!
    猜你喜欢
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多