2011-05-25 14 views
6

iPhone uygulamanızın bir iPad üzerinde 2x/1x çalıştırdığını tespit etmenin bir yolu var mı?iPhone uygulaması için iPad 2x düğmesini algılar

Uygulamam için inç başına düşen puanlardaki farkı tespit edebilmem gerekir.

+0

[Uyumluluk modunda iPad'de çalışan iPhone uygulamasını belirleme] olası bir kopyası (http://stackoverflow.com/questions/3242620/detecting-iphone-app-running-on-ipad-in-comp Atlanabilirlik modu) –

+1

@Josh, ilgili, ancak bir çoğaltma değil. IPhone uygulamanızın bir iPad'de çalıştığını ve 1x veya 2x hızında çalışıp çalışmadığını saptamak, iki farklı şeydir. İyi bir bağlantı olsa da; Kesinlikle buna göre hareket etmeden önce 2x ölçeğin bir iPhone4 retina ekranı veya iPad 2x moduyla ilişkili olup olmadığını anlamak istersiniz. – magma

cevap

0

Sen kaydederek değişikliği algılayabilir İşte

[[UIScreen mainScreen] scale] 

kullanışlı fonksiyon bulunuyor bildirim için _UIClassicApplicationWillChangeZoomNotificationName ve daha sonra cevabını değiştirmek için @magma tarafından özetlenen yöntemi kullanarak daha fazla veya daha az kullanın. _UIClassicApplicationWillChangeZoomNotificationName, ölçeği değiştirmek için "2x"/"1x" butonu kullanıldığında size söyleyecektir. Herhangi Bildirim için

Kayıt:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeZoom:) name:nil object:nil]; 

Sonra göre değerler kontrol edin: Eğer _UIClassicApplicationWillChangeZoomNotificationName kayıt olamaz yana

6

Kontrol scale özelliği:

+(BOOL) screenIs2xResolution { 
    return 2.0 == [MyDeviceClass mainScreenScale]; 
} 

+(CGFloat) mainScreenScale { 
    CGFloat scale = 1.0; 
    UIScreen* screen = [UIScreen mainScreen]; 
    if ([UIScreen instancesRespondToSelector:@selector(scale)]) { 
    scale = [screen scale]; 
    } 
    return scale; 
} 

Kredi:: da http://www.markj.net/iphone-4-2x-graphics-scale-ipad/

bakınız: http://struct.ca/2010/high-res-graphics-in-cocos2d/

+0

bu değişmez. – madmik3

+0

@ madmik3 bunu yapar. Birkaç geliştirici, iPad uygulamasında 2x hızında çalışan iPhone uygulamalarında yüksek çözünürlüklü grafikleri destekler. – magma

+0

Bu kodu uygulaüme ekledim ve test ettim. Her zaman 1.0 ölçeğini rapor eder. Yani benim durumumda çalışmıyor. – madmik3

2

, bir iç sabit gibi görünüyor, ne yaptığını olan

- (void)changeZoom:(NSNotification*)notification 
{ 
    if ([[notification name] isEqualToString:@"_UIClassicApplicationWillChangeZoomNotificationName"]) 
    { 
     NSLog(@"Zoom changed to %@", [[[notification userInfo] objectForKey:@"_UIClassicIsZoomedUserInfoKeyName"] boolValue] == 0 ? @"1x" : @"2x"); 
    } 
} 
İlgili konular