如何在横向模式下获得主UIView的宽度?

时间:2012-12-04 09:10:13

标签: ios uiview uiviewcontroller landscape

当我使用此代码时:

- (void)viewDidLoad
{
    [super viewDidLoad];
    CGFloat mainViewWidth = self.view.bounds.size.width;
    NSLog(@"%f", mainViewWidth);
}

我在模拟器中得到了结果:480

当我在iPhone 4上启动应用程序时,我得到了结果320?

我做错了吗?

3 个答案:

答案 0 :(得分:11)

viewWillAppear中执行相同操作。

-(void)viewWillAppear:(BOOL)animated{
    CGFloat mainViewWidth = self.view.bounds.size.width;
    NSLog(@"%f", mainViewWidth);
}

并查看您是否获得了正确的值。在完全绘制视图之前调用ViewDidLoad。访问UIView size属性会为您提供不可预测的值。

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

Swift 3.1:

let width = yourView.bounds.width