SORU
10 EYLÜL 2014, ÇARŞAMBA


Tespit iPhone 6/6 nokta değerleri içinde ekran boyutları

Verilen yeni ilan 6 screen sizes iPhone:

iPhone 6: 1334h * 750w @2x (in points: 667h * 375w)
iPhone 6 : 1920 * 1080 @3x (in points: 640h * 360w)

Merak ediyordum da orada bir kod verir bana algılayacak, ekran boyutu kullanıcının cihaz, böylece edebilirim ayarlamak ve boyutu UIImages ve diğer malzemeleri buna göre kullanıcının cihaz.

Şimdiye kadar, aşağıdaki kullanıyorum:

- (NSString *) platform{
    size_t size;
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
    char *machine = malloc(size);
    sysctlbyname("hw.machine", machine, &size, NULL, 0);
    NSString *platform = [NSString stringWithUTF8String:machine];
    free(machine);
    return platform;
}

- (NSString *) platformString{
    NSString *platform = [self platform];
    if ([platform isEqualToString:@"iPhone1,1"])    return @"iPhone 1G";
    if ([platform isEqualToString:@"iPhone1,2"])    return @"iPhone 3G";
    if ([platform isEqualToString:@"iPhone2,1"])    return @"iPhone 3GS";
    if ([platform isEqualToString:@"iPhone3,1"])    return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,3"])    return @"Verizon iPhone 4";
    if ([platform isEqualToString:@"iPhone4,1"])    return @"iPhone 4S";
    if ([platform isEqualToString:@"iPhone5,1"])    return @"iPhone 5 (GSM)";
    if ([platform isEqualToString:@"iPhone5,2"])    return @"iPhone 5 (GSM CDMA)";
    if ([platform isEqualToString:@"iPhone5,3"])    return @"iPhone 5c (GSM)";
    if ([platform isEqualToString:@"iPhone5,4"])    return @"iPhone 5c (GSM CDMA)";
    if ([platform isEqualToString:@"iPhone6,1"])    return @"iPhone 5s (GSM)";
    if ([platform isEqualToString:@"iPhone6,2"])    return @"iPhone 5s (GSM CDMA)";
    if ([platform isEqualToString:@"iPod1,1"])      return @"iPod Touch 1G";
    if ([platform isEqualToString:@"iPod2,1"])      return @"iPod Touch 2G";
    if ([platform isEqualToString:@"iPod3,1"])      return @"iPod Touch 3G";
    if ([platform isEqualToString:@"iPod4,1"])      return @"iPod Touch 4G";
    if ([platform isEqualToString:@"iPod5,1"])      return @"iPod Touch 5G";
    if ([platform isEqualToString:@"iPad1,1"])      return @"iPad";
    if ([platform isEqualToString:@"iPad2,1"])      return @"iPad 2 (WiFi)";
    if ([platform isEqualToString:@"iPad2,2"])      return @"iPad 2 (GSM)";
    if ([platform isEqualToString:@"iPad2,3"])      return @"iPad 2 (CDMA)";
    if ([platform isEqualToString:@"iPad2,4"])      return @"iPad 2 (WiFi)";
    if ([platform isEqualToString:@"iPad2,5"])      return @"iPad Mini (WiFi)";
    if ([platform isEqualToString:@"iPad2,6"])      return @"iPad Mini (GSM)";
    if ([platform isEqualToString:@"iPad2,7"])      return @"iPad Mini (GSM CDMA)";
    if ([platform isEqualToString:@"iPad3,1"])      return @"iPad 3 (WiFi)";
    if ([platform isEqualToString:@"iPad3,2"])      return @"iPad 3 (GSM CDMA)";
    if ([platform isEqualToString:@"iPad3,3"])      return @"iPad 3 (GSM)";
    if ([platform isEqualToString:@"iPad3,4"])      return @"iPad 4 (WiFi)";
    if ([platform isEqualToString:@"iPad3,5"])      return @"iPad 4 (GSM)";
    if ([platform isEqualToString:@"iPad3,6"])      return @"iPad 4 (GSM CDMA)";
    if ([platform isEqualToString:@"iPad4,1"])      return @"iPad Air (WiFi)";
    if ([platform isEqualToString:@"iPad4,2"])      return @"iPad Air (Cellular)";
    if ([platform isEqualToString:@"iPad4,4"])      return @"iPad mini 2G (WiFi)";
    if ([platform isEqualToString:@"iPad4,5"])      return @"iPad mini 2G (Cellular)";
    if ([platform isEqualToString:@"i386"])         return @"Simulator";
    if ([platform isEqualToString:@"x86_64"])       return @"Simulator";
    return platform;
}

Gibi iPhone7,1 iPhone7,2 iPhone7,3 iPhone7.4 artıları sırasında iPhone 6 olduğunu farz edebilir miyim? Eğer kimseye söylersen daha somut bir yolu varsa harika, teşekkürler. olur!

CEVAP
10 EYLÜL 2014, ÇARŞAMBA


İlk ekran cihaz ekranı olacak, piyasaya yeni telefonlar için görüntüler Unutmayın önce eklenmesi gerekiyor, aksi takdirde uygulamayı eski uygulamaları için Yakınlaştırılmış Modunda çalışıyor : İşte bu kontrol etmek için kullanılan kod (iOS 8'de sadece çalışır):

UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
          NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);

Kod için iPhone 6 Plus algılama:

-(BOOL)iPhone6PlusDevice{
    if ([UIScreen mainScreen].scale > 2.9) return YES;   // Scale is only 3 when not in scaled mode for iPhone 6 Plus
    return NO;
}

ya

-(BOOL) iPhone6PlusUnZoomed{
    if ([self iPhone6PlusDevice]){
        if ([UIScreen mainScreen].bounds.size.height > 720.0) return YES;  // Height is 736, but 667 when zoomed.
    }
    return NO;
}

Not: Eğer iPhone 6 Plus için kontrol ediyorsanız, kullanıcı arayüzü ayarlamak için sonra dont simülatörü ve gerçek cihaz, farklı sonuçlar verir çünkü .nativeScale güvenmektedir. Aşağıdaki yorum nedeniyle. Ölçekli bir CGFloat ve böylece kod bazı değerler hiç eşit olabilir yüzer çünkü eşitlik kontrol edin.


Ekledikten sonrabaşlangıç görüntüleriYeni içiniPhone6ve6Plusboyutları değiştirin. Onlar ekrana sığdırmak için büyük ölçekli uygulamalar.

Boyut içiniPhone 6 PlusveiPhone 6 Plus@3x Ölçekleme (Apple adı:Retina HD 5.5), Koordinat:414 x 736puan ve1242 x 2208piksel, 401 ÜFE, ekran fiziksel boyutu 2.7 x 4.8 ya68 x 122 mm:

Screen bounds: {{0, 0}, {414, 736}}, Screen resolution: <UIScreen: 0x7f97fad330b0; bounds = {{0, 0}, {414, 736}}; 
mode = <UIScreenMode: 0x7f97fae1ce00; size = 1242.000000 x 2208.000000>>, scale: 3.000000, nativeScale: 3.000000

Boyut içiniPhone 6veiPhone 6@2x Ölçekleme (Apple adı:Retina HD 4.7), Koordinat:375 x 667puan ve750 x 1334piksel, 326 ÜFE, ekran fiziksel boyutu 2.3 x veya 4.158 x 104 mm:

Screen bounds: {{0, 0}, {375, 667}}, Screen resolution: <UIScreen: 0x7fa01b5182d0; bounds = {{0, 0}, {375, 667}}; 
mode = <UIScreenMode: 0x7fa01b711760; size = 750.000000 x 1334.000000>>, scale: 2.000000, nativeScale: 2.000000

VeiPhone 5karşılaştırma için 640 x 1136,iPhone 4640 x 960.

Not: Upload Launchİmages ölçekli uygulama çalıştırmak ve doğru Ölçekleme veya ekran boyutları değil yoksa.

Comparing iPhone 6 and 6 Plus

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • Grace Su

    Grace Su

    6 Ocak 2006
  • Shaollin Animes

    Shaollin Ani

    19 HAZİRAN 2013