横向模式的高度和宽度显示错误

时间:2013-08-13 10:45:34

标签: ios objective-c orientation

我用这种方法检测屏幕的宽度和高度。但它在纵向和横向上的宽度显示为768,高度为1024.

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

float widthfloat=  screenBounds.size.width;
float heightfloat= screenBounds.size.height;

NSLog(@"  width float %f",widthfloat);
NSLog(@"height float %f",heightfloat);


NSLog(@"width view %f \n height view %f", self.view.bounds.size.width, self.view.bounds.size.height);
NSLog(@"width %f \n height %f", screenBounds.size.width, screenBounds.size.height);


float wvalue  = [[UIScreen mainScreen] bounds].size.width;

float hvalue =  [[UIScreen mainScreen] bounds].size.height;


NSLog(@"  wvalue %f",wvalue);
NSLog(@"hvalue %f",hvalue);


CGFloat width1 = [UIScreen mainScreen].bounds.size.width;
CGFloat height1 = [UIScreen mainScreen].bounds.size.height;


NSLog(@"width1 %f",width1);
NSLog(@"height1 %f",height1);

CGFloat screenScale = [[UIScreen mainScreen] scale];

CGRect screenBounds1 = [[UIScreen mainScreen] bounds];

CGSize screenSize = CGSizeMake(screenBounds1.size.width * screenScale, screenBounds1.size.height * screenScale); if (screenSize.height==1136.000000)

NSLog(@"abcd1 %f",screenBounds1.size.width);
NSLog(@"abcd2 %f",screenBounds1.size.height);
NSLog(@"efgh1 %f",screenSize.width);
NSLog(@"efgh2 %f",screenSize.height);

2 个答案:

答案 0 :(得分:0)

bounds 包含屏幕的边界矩形,以点为单位。它不关心屏幕方向。

答案 1 :(得分:-1)

您可以计算屏幕尺寸,我为我做了类似的事情 -

-(CGSize)screenSize
{
    CGSize size = [UIScreen mainScreen].applicationFrame.size;

    if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation))
        return size;

    else
    {
        if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
        {
            if (size.height > 480.0)
                // This is iPhone-5
                size = CGSizeMake(568.0, 320.0);
            else
                // This is iPhone-4
                size = CGSizeMake(480.0, 320.0);
        }
        else
        {
            // This is iPad
            size = CGSizeMake(1024.0, 768.0);
        }

        if (![[UIApplication sharedApplication] isStatusBarHidden])
            size.height -= 20.0;

        return size;
    }
}

注意:如果可用,该方法会在降低状态栏高度后为您提供高度。