UIView比它的帧宽1个像素(iPhone 6)

时间:2014-10-16 14:58:40

标签: ios uiview

我之间有一些间隔线。

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磅,那么第一和第二是4像素(iPhone 6),但第3,第4和第5是5像素宽。

什么可以拉伸那些UIViews?

1 个答案:

答案 0 :(得分:2)

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

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