我有一个突然出现的奇怪问题。问题是我的应用程序似乎在扩展我的视图,例如将设备从iPhone 6更改为iPhone 6 Plus。因此,如果我有一个具有特定字体大小的标题,则在iPhone 6 Plus屏幕上占用相同的空间时,我想要的是大小相同,并且在较大的设备上显得更小。有谁知道这是怎么发生的以及如何解决这个问题?
我注意到跑步:
NSLog(@"%f", [UIScreen mainScreen].bounds.size.width);
NSLog(@"%f", [UIScreen mainScreen].bounds.size.height);
他在所有模拟器设备上生成相同的输出:
320
568
我希望在较大的设备上有所不同。这与它有什么关系吗?
答案 0 :(得分:1)
您是否为iPhone 6和6 Plus设备添加了启动图像?否则它将在这些分辨率下运行(并且[[UIScreen mainScreen] bounds]调用将返回边界,就像在4英寸设备中运行一样)。
答案 1 :(得分:0)
只需添加一张1136高度的新默认png照片。
[[UIScreen mainScreen] bounds] .size
将返回4英寸屏幕的新高度。
答案 2 :(得分:0)
这不是一个错误。您可以查看WWDC 2014的会话214以获取更多信息:"View Controller Advancements in iOS 8"
来自演示文稿的引用:
答案 3 :(得分:0)
您仍然可以解决不同的问题。这是代码:
+ (CGRect)screenBoundsFixedToPortraitOrientation {
UIScreen *screen = [UIScreen mainScreen];
if ([screen respondsToSelector:@selector(fixedCoordinateSpace)]) {
return [screen.coordinateSpace convertRect:screen.bounds toCoordinateSpace:screen.fixedCoordinateSpace];
}
return screen.bounds;
}