2011-04-04 24 views
15

Mevcut hedefimi iPad'e yükselttim ve evrensel bir uygulama yaptım ve bu soruya bir cevap varsa, iphone uygulamasını ipad'e ayarlama zamanı önemli ölçüde azalacak. Bu sefer herkes size "football.png" adlı bir imaja sahip ve Retina Ekran destek isterseniz resmin boyutunu iki katına ve "[email protected]" diyoruz gerektiğini biliyorum ByXcode'taki iPad için resimleri belirtin @ 2x için iPhone 4

.

Sorum şu ki; iPad için *[email protected]_which_is_another_size.png* gibi bir şey var mı?

Bunu yapmanın bir yolu yoksa, her görüntüyü bir IBOutlet'e bağlayıp çerçeveyi programsal olarak ayarlamalı mıyım?

cevap

27
iOS 4.0 ise

ve sonra, kullanışlı olarak sadece belirli bir tip bireysel kaynak dosyaları işaretlemek için mümkündür aygıt Bir kaynak dosyayı belirli bir aygıtla ilişkilendirmek için, dosya adına bir özel değiştirici dizesi eklersiniz. Bu değiştirici dize ait dahil aşağıdaki formatı ile dosya adlarını verir: Eğer ~ipad kullanmalıdır

<basename><device>.<filename_extension> 

iPad belirli kaynakları yüklemek için. Örnek: AwesomeImage~ipad.png adlı görüntüyü oluşturun ve retina görüntü görüntüsü için yaptığınız gibi [UIImage imageNamed:@"AwesomeImage.png"] ile yükleyin.

Daha fazla bilgi için: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html "iOS, Aygıta Özel Aygıtları Destekler" bölümünde.

+0

Büyük bir yanıt, dağıtım hedefi 3.0 olarak ayarlanmış olsa da bu çözümü kullanamıyorum. –

+0

, IB ve LaunchScreen.xib için çalışmıyor. – BergP

+0

AppleTV (tvOS) için var mı? Bunun için hiçbir ipucu bulamadım ... – Scorpio

2

Retina ekranı için olduğu gibi, işletim sistemini sizin için otomatik olarak almanın bir yolu olduğunu sanmıyorum. Ama, sizin için dosya döndürmek için bir kolaylık yöntemi oluşturabilirsiniz istiyorum:

-(NSString*) myImageFilename:(NSString*)baseName withExtension:(NSString*)ext { 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    return [NSString stringWithFormat:"%@@iPadSize.%@"]; 
} else { 
    return [NSString stringWithFormat:"%@.%@"]; 
} 

} 
+0

Yanıt için teşekkürler, bu alternatif çözüm, her görüntüyü başlık dosyanızdaki bir IBOutlet'e bağlamanız gerektiği anlamına gelir. Eimanas'ın cevabında yorum yaptığım gibi, sadece bir MainWindow-iPad.xib yaratan evrensel bir uygulama yaratıyorum. Ancak mevcut hedefi iPad'e yükseltirken diğer alternatifi kullanmayı düşünüyorum. Bu en uygun çözüm gibi geliyor mu? –

İlgili konular