在iOS7 iPad Mini和iOS6 iPad 3上有不同的定位

时间:2013-12-11 00:34:59

标签: ipad ios6 ios7 uilabel

我在我的应用程序代码中简单地放置了UILabel:

headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 5, 884, 68)];
headerLabel.font = [UIFont fontWithName:@"HoboStd" size:64];
headerLabel.textAlignment = UITextAlignmentCenter;
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.textColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];
headerLabel.adjustsFontSizeToFitWidth = YES;
[self.view addSubview:gameSpeaks];

在iOS6 iPad 3上,屏幕上的文字显示比iOS 7 iPad Mini上的文字略高,代码相同,同样.xib和所有内容。有人知道这是iOS6与iOS7的结果还是由于不同的设备或其他一些我不知道的问题?

想要说当我在iOS6上测试它时iPad Mini显示与iPad 3相同的位置,然后我将其升级到iOS7并注意到这个差异。如果是导致此问题的操作系统版本 - 在代码中测试操作系统版本的首选方法是什么,以便在OS7设备和OS6上运行时可以根据需要重新定位标签?

非常感谢!

1 个答案:

答案 0 :(得分:2)

这是iOS6 vs iOS7的结果,因为状态栏现在是视图的一部分。

iOS7中,如果您不调整它们,所有内容都会比iOS6中显示的内容大约20个像素更高。

iOS6和之前,将UI元素的y原点设置为0会将其置于状态栏的最底部。在iOS7中,0的y原点现在将它放在屏幕的最顶端,位于(现在是透明的)状态栏后面。

您可以使用以下方式获取当前版本的设备:

[[UIDevice currentDevice] systemVersion]