繁体   English   中英

iPhone 6和iPhone 6 plus宽度问题

[英]iPhone 6 and iPhone 6 plus width issue

现在,我正在尝试使我的应用程序兼容iPhone 6/6 +。 问题是,我在一行中水平对齐了4个按钮。 它们每个的宽度是80点(在情节提要中设置)。 适用于iPhone4 / 5 / 5s。 现在,当我在iPhone 6/6 +上模拟该应用程序时,您会看到第3个按钮和第4个按钮之间有2像素的间距。 我没有使用自动布局。 我知道iPhone 6 plus的宽度是:1242 x 2208px。 问题是1242无法除以4。

在此处输入图片说明

问题是当我使用以下代码时:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGFloat screenScale = [[UIScreen mainScreen] scale];
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
CGFloat screenWidth = screenSize.width;

实际上, screenWidth是640。

有人知道如何解决这个问题吗? 提前谢谢了。

您应该以点而不是像素为单位进行操作,因此iPhone 6 Plus的宽度(在纵向模式下)为414,而iPhone 6为375。

在这种情况下(即数学无法精确计算)划分屏幕时,您需要确保最小的空间相等(在这种情况下为分隔线),并使大区域的尺寸略有不同(点了等等)。 这是因为(通常)眼睛将能够注意到1点和2点之间的差异,但看不到例如102点和103点之间的差异。

您可能要考虑使用“自动版式”设置此视图,而不是自己做数学。 这就是它的目的。

关于变量screenWidth640第二点,请确保您的应用未处于兼容模式。 如果是,则6和6+的返回尺寸都好像是5s,这将解释640数字。 添加LaunchScreen.xib以确保您的应用以真实的屏幕分辨率而不是缩放比例运行。 请参阅此处: 如何为iPhone 6和6 Plus上的应用程序启用本机分辨率?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM