4

当我使用此代码时:

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

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

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

我做错什么了吗?

4

3 回答 3

13

在 中做同样的事情viewWillAppear

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

看看你是否得到了正确的值。ViewDidLoad在视图完全绘制之前被调用。访问UIViewsize 属性会为您提供不可预测的值。

于 2012-12-04T09:14:48.040 回答
1

斯威夫特 3.1:

let width = yourView.bounds.width
于 2017-04-14T13:46:14.623 回答
0

试试这个

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    CGFloat width = CGRectGetWidth(self.view.bounds);
}
于 2012-12-04T09:14:36.430 回答