Ios 如何在横向模式下获得主视图的宽度?

Ios 如何在横向模式下获得主视图的宽度?,ios,uiview,uiviewcontroller,landscape,Ios,Uiview,Uiviewcontroller,Landscape,当我使用此代码时: - (void)viewDidLoad { [super viewDidLoad]; CGFloat mainViewWidth = self.view.bounds.size.width; NSLog(@"%f", mainViewWidth); } 我在模拟器上得到的结果是:480 当我在iPhone4上启动应用程序时,结果是320 我做错什么了吗?试试这个 -(void)didRotateFromInterfaceOrientation:(UI

当我使用此代码时:

- (void)viewDidLoad
{
    [super viewDidLoad];
    CGFloat mainViewWidth = self.view.bounds.size.width;
    NSLog(@"%f", mainViewWidth);
}
我在模拟器上得到的结果是:480

当我在iPhone4上启动应用程序时,结果是320

我做错什么了吗?

试试这个

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    CGFloat width = CGRectGetWidth(self.view.bounds);
}

视图中执行相同操作将出现

-(void)viewWillAppear:(BOOL)animated{
    CGFloat mainViewWidth = self.view.bounds.size.width;
    NSLog(@"%f", mainViewWidth);
}
并查看是否得到正确的值<代码>ViewDidLoad
在视图完全绘制之前被调用。访问
UIView
size属性会给您带来无法预测的值。

Swift 3.1:

let width = yourView.bounds.width

我尝试过使用框架代替边界,但结果仍然不一样。您应该在ViewWillDisplay中使用这段代码,因为无论何时旋转调用都会出现。或者,如果您特别希望登录特定方向,则只需使用布尔值……我希望您能得到它。