2014-10-16 27 views
0

我在东西之间有一些间隔线。UIView比它的框架宽1个像素(iPhone 6)

UIView * lineView = [[UIView alloc] initWithFrame: CGRectMake(x, 0, 1, h)]; 
lineView.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.5f]; 
[self addSubview:lineView]; 

在iPhone 4S,5和iPad mini上,它们都是1像素(2视网膜)宽。 然而,在iPhone 6上(甚至在模拟器中)第五行是3像素宽,我不知道为什么。 (我有真正的手机凸轮放大)

的框架图显示

{{ 85, 0}, {1, 32}} 
{{184, 0}, {1, 32}} 
{{284, 0}, {1, 32}} 
{{383, 0}, {1, 32}} 
{{483, 0}, {1, 32}} // this is 1.5 wide (3 pixels) 

现在,如果我让他们2点宽,1号和2号是4 PIX(iPhone 6),但在第3,第4和第5的5 pix宽。

什么可以伸展这些UIViews?

+3

听起来像你的应用程序本身不支持iPhone 6,所以你的应用程序正在扩展。 – rmaddy 2014-10-16 15:00:32

+0

这个测试/问题只有iPhone 6,没有加 – NikkyD 2014-10-16 15:06:03

+1

添加iPhone 6发射图像,你的问题将消失。 – rmaddy 2014-10-16 15:07:45

回答

2

最可能的问题是您的应用程序正在iPhone 6(和6+)上进行缩放。不完全支持iPhone 6/6 +屏幕尺寸的应用程序将由iOS缩放以填充屏幕。这种缩放的最终结果是像素的行和列在缩放过程中得到了重复。

最好的解决方案是通过添加适当的启动图像和/或新的iOS 8“启动屏幕文件”来增加对iPhone 6和6+的全面支持。当然,您需要确保您的应用程序旨在利用更大的屏幕。

+0

解决了这个问题,棘手的一个寿 – NikkyD 2014-10-16 16:31:41