2012-09-18 15 views
12

Uygulamalarımdan bazıları, arka plan olarak özel resimler kullanıyor. Uygun görüntüyü yerleştirmek için ekran boyutunu kontrol etmenin uygun yolu nedir?iPhone 5 için arka plan resimlerini nasıl yönetirim?

o viewDidLoad böyle bir şey olmalı:

if ([UIScreen mainScreen] == 2.0) 
{ 
    UIImage * backgroundImage = [UIImage imageNamed:@"[email protected]"]; 
    backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]]; 
} 
else 
{ 
    UIImage * backgroundImage = [UIImage imageNamed:@"bgimage.png"]; 
    backgroundImageView = [[UIImageView alloc] iniWithImage:backgroundImage]]; 
} 

Herhangi ipuçları/öneri çok takdir edilmektedir!

Teşekkürler!

cevap

16

Aşağıdaki kod, ekranın boyutunu/sınırlarını kontrol eder. Eğer ekran 586 puan ise (hatırlayın, ekranın Retina nedeniyle puan olarak ölçüldüğünü unutmayın) yeni 4 inçlik Retina Ekranı olduğunu biliyoruz.

if ([[UIScreen mainScreen] bounds].size.height == 568) 
{ 
    UIImage * backgroundImage = [UIImage imageNamed:@"[email protected]"]; 
    backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]; 
} 
else 
{ 
    UIImage * backgroundImage = [UIImage imageNamed:@"bgimage.png"]; 
    backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]; 
} 

Ayrıca bkz iOS 6 apps - how to deal with iPhone 5 screen size?

+2

"@ 2x" ve .png metnini görüntü dosya adlarından kaldırabilirsiniz ve işler düzgün çalışmalıdır. Bu, genellikle "@ 2x" yi buraya koymak için iyi bir fikir değil, çünkü bu, imageNamed tarafından kapağın altında işleniyor: her neyse – Kevlar

+0

nereye gider? "- viewdidLoad" – Gabriel

+0

Evet. Kod temelde Luke'un orijinal soruya koyduğu, viewDidLoad: ' – Bryan

1

dışında benim için çalıştı yukarıda Bryan'ın cevabı sadece görüntüler eğer ben

[self.bgImageView setImage:backgroundImage]; 

yerine

backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]; 

doğru resim kullanmak zorunda eskiyi kullan.

+0

'backgroundImageView' ifadesini koymak için bir şey istediği, yalnızca if deyimini nasıl yazdığınızı gösteren bir addı. Bu soru Luke tarafından konuldu. Kendi programınızda bulmanız beklenen bir şey değil. Aynı şekilde "bgImageView", programınızda sadece bir isimdir, aynı adı almamışsa başkaları için çalışmayacaktır. – Bryan