2012-10-25 13 views
6

मैं अपने viewController.m में पृष्ठभूमि कोड लिखा है:Xcode 4.5 पृष्ठभूमि छवि iPhone 4, 4s, 5

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]; 

और मैं अलग अलग चित्रों का सही नाम है:

image.png for non-retina display (320x480) 

[email protected] for retina display (640x960) 

[email protected] for iPhone 5 (640x1136) 

लेकिन जब मैं इसे सिम्युलेटर में चलाता हूं तो यह आईफोन 5 स्क्रीन के लिए [email protected] नहीं लेता है, यह केवल 4s स्क्रीन के लिए छवि @ 2x लेता है और स्क्रीन को फिट करने के लिए स्केल करता है ... मुझे नहीं पता कि क्या है आईफोन 5 स्क्रीन के लिए छवि-568h @ 2x का उपयोग करने के लिए कोई कोडिंग?

इम Xcode 4.5

+0

गाली मत टैग। –

+0

एक्सको का कौन सा संस्करण आप उपयोग कर रहे हैं? –

+0

मूल प्रश्न: http://stackoverflow.com/questions/13055007/xcode-4-5- अलग-iphone-backgroud-on-iphone-4s-and-5 प्रश्नों को पुनर्जीवित करने के बजाय, मूल में अधिक जानकारी प्रदान करने पर विचार करें एक, थोड़ा प्रतिष्ठा प्राप्त करना और एक बक्षीस शुरू करना। –

उत्तर

13

iPhone 5 का उपयोग करके देखें रेटिना, आईफोन 4 और 4 एस की तरह, और इन सभी उपकरणों के लिए @ 2x-image स्वचालित रूप से उपयोग किया जाएगा। यह केवल स्टार्टअप छवि iPhone 5 के लिए जाता है कि "-568h @ 2x" कहा जाता है आप एक अलग छवि का उपयोग करने के लिए कुछ कोड लिखने की जरूरत है, कुछ इस तरह काम करेगा:

NSString *filename = @"image.png"; 
CGRect screenRect = [[UIScreen mainScreen] bounds]; 
if (screenRect.size.height == 568.0f) 
    filename = [filename stringByReplacingOccurrencesOfString:@".png" withString:@"-568h.png"]; 

imageView.image = [UIImage imageNamed:filename];
+0

"imageView" यहां @ सिंथेसाइज़ है? या ..? – Peter

+1

इस नमूना-प्रोजेक्ट को देखें: https://www.dropbox.com/s/gcc081dy0frs20z/RetinaImageTest.zip। यदि आप इसे विभिन्न सिम्युलेटर उपकरणों में चलाते हैं, तो आप तीन अलग-अलग (बेहद बदसूरत) छवियां देखेंगे :) उन्हें निश्चित रूप से विभिन्न संकल्प होना चाहिए, लेकिन यह अवधारणा का सबूत है। – TheQ

+0

धन्यवाद, बहुत कुछ! आप वास्तव में मेरी समस्या हल! :) – Peter

2

मेरा मानना ​​है कि यह ग्रहण करने के लिए है कि आप सभी छवि फ़ाइलों को [email protected] चाल आवेदन कर सकते हैं वह सही नहीं है का उपयोग कर। मुझे लगता है कि यह केवल[email protected] के लिए काम करता है। यह वह फ़ाइल है जो आईओएस 4 "डिस्प्ले डिवाइस पर ऐप लॉन्च के साथ-साथ" फ्लैग "पर एसडीके में 4" डिस्प्ले सपोर्ट सक्षम करने के लिए भी दिखता है। उदाहरण के लिए, एक बार जब आप इस विशिष्ट फ़ाइल को शामिल कर लेंगे, तो आपके टेबल दृश्य स्क्रीन भरेंगे।

मैंने यह सुझाव देने के लिए कुछ भी नहीं पढ़ा है कि आप आसानी से [email protected] फ़ाइल नाम घटक के साथ कोई भी छवि प्रदान कर सकते हैं और इसे स्वचालित रूप से उपयोग किया जा सकता है। आपको खुद को स्क्रीन आकार के आधार पर करना होगा, उदा। [UIScreen mainScreen].bounds.size.height

3

यदि आप [UIImage imageNamed:@"image.png"] का उपयोग करने की कोशिश कर रहे हैं और [email protected] को आईफोन 5 के लिए बंडल से स्वचालित रूप से चुनने की उम्मीद है, तो यह काम नहीं करेगा। स्वचालित पिकिंग केवल आईफोन 4 और 4 एस के लिए काम करता है।

केवल डिफ़ॉल्ट [email protected] के रूप में नामित छवि सामान्य छवियों के लिए iPhone 5

में स्वचालित रूप से उठाया जाएगा, यदि आप iPhone 5 के लिए अलग छवि है, इस कोड

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
if (screenBounds.size.height == 568) { 
    // code for 4-inch screen 
} else { 
    // code for 3.5-inch screen 
} 
संबंधित मुद्दे