可能重复:
iOS 6 apps - how to deal with iPhone 5 screen size?
Same xib for iPhone4 and iPhone5 possible?
我一直在制作我的应用程序,而这一直是iPhone 5的屏幕尺寸。我忘了关于iPhone 4的所有内容,我甚至没有它,愚蠢的我......我怎么会这样做?现在我已经为iPhone 5编码了,我的代码如何适用于两种屏幕尺寸?
这是我遇到的那种问题的模型。在第二张图片中,滑块在较小的设备上切断屏幕
答案 0 :(得分:1)
我能给你的最好的建议就是在你的XIB上尝试自动调整/自动对齐设置。这是避免为每个设备设置单独视图的最佳选择。
在您给出的示例中,您可以使用Xcode中的设置:
调整它们,使滑块的原点位于屏幕的底部。使用每个UI元素的设置,直到所有内容都正确。
答案 1 :(得分:0)
您可以严格执行的操作取决于您定义界面的方式以及UI的外观。
如果您在Interface Builder / Storyboard中创建了UI,则可以尝试查看所有控件和视图指标设置。这方面有两个主要暗示:
通过仔细选择自动调整行为,您可能会得到一些改进。对于某些元素,您可能需要修复与屏幕边缘的距离,对于其他元素,您可能需要设置灵活的宽度和高度:它在很大程度上取决于您的UI。
控制相关UI元素正确定位的一项好方法是将它们分组为超视图,然后您可以通过保留这些元素的相对位置来替换或缩放(赋予其灵活的宽度或高度)。
如果您在代码中定义了界面,则应该检查定义所有位置和大小的方式,而不是将它们设置为绝对值,您可以将它们重新编码为屏幕大小的百分比。
我在我的应用程序中使用了这两种技术,用于支持iPhone4 / 5和iPhone / iPad。 无论如何,这是一些工作。这可能是很多工作,或者只是一些工作,取决于你的应用UI中的坏事。
如果您正在寻找一种自动修复方法,请尝试将缩放变换应用于主视图(例如,在您的应用代理中):
window.rootViewController.view.transform = CGAffineTransformMakeScale(1.0, 0.84);
我不确定这是否会起作用,但在最好的情况下,我认为这样可以更好地理解不能自动修复的事实。