Yanıtlar:
CGRect screenBounds = [[UIScreen mainScreen] bounds];
Bu size tüm ekranın çözünürlüğünü nokta cinsinden verecektir, bu nedenle iPhone'lar için en çok 320x480 olacaktır. İPhone4 çok daha büyük bir ekran boyutuna sahip olsa da iOS, 640x960 yerine 320x480 geri veriyor. Bunun nedeni çoğunlukla eski uygulamaların bozulmasıdır.
CGFloat screenScale = [[UIScreen mainScreen] scale];
Bu size ekranın ölçeğini verecektir. Retina Ekranı olmayan tüm cihazlar için bu bir 1.0f verirken, Retina Display cihazları 2.0f verir ve iPhone 6 Plus (Retina HD) 3.0f verir.
Şimdi, iOS cihaz ekranının piksel genişliğini ve yüksekliğini elde etmek istiyorsanız, sadece basit bir şey yapmanız gerekir.
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
Ekran ölçeğiyle çarparak gerçek piksel çözünürlüğünü elde edersiniz.
İOS'taki noktalar ve pikseller arasındaki fark hakkında iyi bir okuma buradan okunabilir .
DÜZENLEME: (Swift için Sürüm)
let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)
UIScreen sınıfı, Ekran çözünürlüğünü Noktalar ve Piksellerde bulmanızı sağlar.
Ekran çözünürlükleri Nokta veya Piksel cinsinden ölçülür. Asla ekran boyutuyla karıştırılmamalıdır. Daha küçük bir ekran boyutu daha yüksek çözünürlüğe sahip olabilir.
UIScreen'in 'bounds.width' değeri Point cinsinden dikdörtgen boyutunu döndürür
UIScreen'in 'nativeBounds.width' değeri Piksel cinsinden dikdörtgen boyutu döndürür.Bu değer PPI (Point per inch) olarak algılanır. Bir cihazdaki Görüntünün keskinliğini ve netliğini gösterir.
Tüm bu değerleri algılamak için UIScreen sınıfını kullanabilirsiniz.
swift3
// Normal Screen Bounds - Detect Screen size in Points.
let width = UIScreen.main.bounds.width
let height = UIScreen.main.bounds.height
print("\n width:\(width) \n height:\(height)")
// Native Bounds - Detect Screen size in Pixels.
let nWidth = UIScreen.main.nativeBounds.width
let nHeight = UIScreen.main.nativeBounds.height
print("\n Native Width:\(nWidth) \n Native Height:\(nHeight)")
Konsol
width:736.0
height:414.0
Native Width:1080.0
Native Height:1920.0
Swift 2.x
//Normal Bounds - Detect Screen size in Points.
let width = UIScreen.mainScreen.bounds.width
let height = UIScreen.mainScreen.bounds.height
// Native Bounds - Detect Screen size in Pixels.
let nWidth = UIScreen.mainScreen.nativeBounds.width
let nHeight = UIScreen.mainScreen.nativeBounds.height
ObjectiveC
// Normal Bounds - Detect Screen size in Points.
CGFloat *width = [UIScreen mainScreen].bounds.size.width;
CGFloat *height = [UIScreen mainScreen].bounds.size.height;
// Native Bounds - Detect Screen size in Pixels.
CGFloat *width = [UIScreen mainScreen].nativeBounds.size.width
CGFloat *height = [UIScreen mainScreen].nativeBounds.size.width
Uygulama Temsilcisi'nde kullanın: Film şeridi kullanıyorum
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
//----------------HERE WE SETUP FOR IPHONE 4/4s/iPod----------------------
if(iOSDeviceScreenSize.height == 480){
UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil];
// Instantiate the initial view controller object from the storyboard
UIViewController *initialViewController = [iPhone35Storyboard instantiateInitialViewController];
// Instantiate a UIWindow object and initialize it with the screen size of the iOS device
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Set the initial view controller to be the root view controller of the window object
self.window.rootViewController = initialViewController;
// Set the window object to be the key window and show it
[self.window makeKeyAndVisible];
iphone=@"4";
NSLog(@"iPhone 4: %f", iOSDeviceScreenSize.height);
}
//----------------HERE WE SETUP FOR IPHONE 5----------------------
if(iOSDeviceScreenSize.height == 568){
// Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4
UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone5" bundle:nil];
// Instantiate the initial view controller object from the storyboard
UIViewController *initialViewController = [iPhone4Storyboard instantiateInitialViewController];
// Instantiate a UIWindow object and initialize it with the screen size of the iOS device
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Set the initial view controller to be the root view controller of the window object
self.window.rootViewController = initialViewController;
// Set the window object to be the key window and show it
[self.window makeKeyAndVisible];
NSLog(@"iPhone 5: %f", iOSDeviceScreenSize.height);
iphone=@"5";
}
} else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// NSLog(@"wqweqe");
storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil];
}
return YES;
}
UIScreen Referansına bakın: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html
if([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")])
{
if ([[UIScreen mainScreen] scale] < 1.1)
NSLog(@"Standard Resolution Device");
if ([[UIScreen mainScreen] scale] > 1.9)
NSLog(@"High Resolution Device");
}
NSLog(@"%f",[[UIScreen mainScreen] scale]);
Bu kodu kullanın, her tür cihazın ekran çözünürlüğünü elde etmeye yardımcı olacaktır.
[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width