2014-10-16 65 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