2014-03-05 62 views
0

當我嘗試閱讀我的設備的分辨率我不能接受良好的效果。iPad的迷你視網膜錯屏幕分辨率

這樣的代碼

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
    CGFloat screenWidth = screenRect.size.width; 
    CGFloat screenHeight = screenRect.size.height; 
    NSString* name = [self machineName]; 

1024 * 768和iPad4,5

MACHINENAME代碼:

#import <sys/utsname.h> 
-(NSString*) machineName() 
{ 
    struct utsname systemInfo; 
    uname(&systemInfo); 

    return [NSString stringWithCString:systemInfo.machine 
           encoding:NSUTF8StringEncoding]; 
} 

我在做什麼錯?我無法理解。它必須是2048 * 1536

回答

3

束縛回報點的屏幕尺寸。

您需要查詢CGFloat scale = [[UIScreen mainScreen] scale];

和寬度/高度乘以該得到的像素值

+0

這是視網膜的功能? – Vyacheslav

+1

這是一個UIScreen屬性。這將在非視網膜和2.0F返回在視網膜上的 – davbryn

+0

感謝您的回答1.0F。 – Vyacheslav

2

試試這個人打攪點屏幕分辨率...

(1)找到使用以下方法的屏幕比例尺

CGFloat screenScale = [[UIScreen mainScreen] scale]; 

這會給你屏幕的比例。對於所有的iPhone和iPodTouches不具有Retina顯示屏會返回一個1.0F,而視網膜顯示設備會給出一個2.0F。

現在,如果你想獲得像素寬度&你只需要做一個簡單的事情iOS設備屏幕的高度。

(2)由屏幕的規模乘以你的實際像素分辨率。

CGSize screenSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width * screenScale, [[UIScreen mainScreen] bounds].size.height * screenScale); 

有關詳細信息讀取this link

+0

另一個答案是更快。不管怎樣,謝謝。 – Vyacheslav