为什么self.view.frame.size.width在iPad横向模式下显示768

时间:2015-08-21 09:07:25

标签: ios objective-c ipad landscape device-orientation

我正在为iPad横向模式创建应用。我为整个屏幕创建了一个UIView。但它不会将整个屏幕显示为1024的宽度。它显示宽度为768(表示0到768)。

backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[backgroundView setBackgroundColor:[[UIColor greenColor]colorWithAlphaComponent:0.5]];
backgroundView.opaque = NO;
backgroundView.userInteractionEnabled = YES;
backgroundView.clearsContextBeforeDrawing=YES;
[self.view addSubview:backgroundView]; 

CGFloat x = self.view.frame.size.width;
NSLog(@"size%f",x); // 768

当我在iPad 2(7.1)模拟器中运行时会发生这种情况

请建议。

2 个答案:

答案 0 :(得分:2)

我记得苹果改变了两个iOS版本之间的方向处理方式,可能是7和8。在7宽度总是设备的宽度忽略它在什么方向,而在8它考虑方向。所以简而言之就是"身高"你应该使用" width"在lanscape模式iOS7。

答案 1 :(得分:2)

您是否在viewdidload中编写此代码?

如果是,则viewDidLoad将没有正确的宽度和高度。您需要在viewDidLayoutSubviews方法中编写它。

喜欢

driver.findElement(By.xapth("//form[contains(@id, 'form0')]/input[contains(@class, 'btn')]")).click;