在任何其他设备上,我们使用此代码在横向设置所有视图,一切都很合适:
float width=[UIScreen mainScreen].bounds.size.width;
float height= [UIScreen mainScreen].bounds.size.height;
在iPad 2 only
上,为了让它在横向上工作,我们必须交换width and height
,否则他会对肖像进行观看,看起来很难看。
为什么只在iPad2中发生?
答案 0 :(得分:3)
它没有链接到设备,而是链接到iOS。从iOS 8.0开始,边界现在取决于设备方向。我也像这样交换宽度和高度:
CGRect ScreenBounds() {
CGRect bounds = [UIScreen mainScreen].bounds;
CGRect tmp_bounds = bounds;
if(bounds.size.width < bounds.size.height) {
bounds.size.width = tmp_bounds.size.height;
bounds.size.height = tmp_bounds.size.width;
}
return bounds;
}
答案 1 :(得分:2)
不要相对于屏幕调整视图大小,而是相对于其容器视图。就这么简单。
答案 2 :(得分:1)
我有同样的问题从iOS 8开始,UIScreen面向接口,因此您可以在iOS 8上运行的设备上获得正确的结果。
为了支持iOS 7,您可以使用以下util方法:
+ (CGSize)screenSize {
CGSize screenSize = [UIScreen mainScreen].bounds.size;
if ((NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1) && UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) {
return CGSizeMake(screenSize.height, screenSize.width);
}
return screenSize;
}