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



当我使用此代码时:

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

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

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

我做错了什么吗?

viewWillAppear 中执行相同的操作。

-(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

试试这个

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

最新更新