0

我已经使用这种方法来检测屏幕的宽度和高度。但它在纵向和横向中也显示宽度为 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);
4

2 回答 2

0

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

于 2013-08-13T10:57:11.883 回答
-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;
    }
}

注意:如果可用,该方法将在减少状态栏的高度后为您提供高度。

于 2013-08-13T11:24:54.880 回答