2012-10-11 14 views
6

मेरे ऐप की लोडिंग स्क्रीन और स्प्लैश स्क्रीन के लिए, मैंने अपने आईफोन 3, आईफोन 4 और आईफोन 5 छवियों को उचित रूप से प्रदर्शित करने के लिए दो अलग-अलग तरीकों का उपयोग किया।आईओएस Colorwithpattern - एक कस्टम आईफोन 5 छवि का उपयोग कर

लोडिंग स्क्रीन के लिए, बस आपकी छवि में -568h @ 2x जोड़ना iPhone5 का समर्थन करने के लिए पर्याप्त है।

स्पलैशस्क्रीन के लिए, मैंने यूआईस्क्रीन की सीमाओं की ऊंचाई की जांच करने के लिए (अगर ऊंचाई ==) मामलों की एक श्रृंखला का उपयोग किया और छवि दृश्य में उचित छवि को सोर्स किया। यह मेरे लिए यहां स्पष्ट था कि -568h सार्वभौमिक रूप से आईफोन 5 छवि के रूप में मान्यता प्राप्त नहीं है। यह केवल लोडिंग स्क्रीन पर लागू होता है।

अब, मेरे ऐपडिलेगेट में, मैं पृष्ठभूमि छवि सेट कर रहा हूं। मेरे सभी सबव्यूज़ में एक पारदर्शी पृष्ठभूमि है, इसलिए उन्हें पृष्ठभूमि छवि के माध्यम से दिखाना चाहिए। हालांकि, मुझे यहां पृष्ठभूमि छवि को स्थापित करने में सबसे अधिक परेशानी हो रही है।

बस "पृष्ठभूमि.png" में गुजरना फ़ाइल नाम के अंत में -568h @ 2x जोड़ना काम नहीं करता है। यह गैर-रेटिना और 3.5 'रेटिना डिस्प्ले करेगा, लेकिन 4' डिस्प्ले के लिए नहीं उठाएगा।

अर्थात्:

self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]]; 

अगर मैं कोड के ऊपर का उपयोग करते हैं, iPhone4 चित्र iPhone5 चित्र के बजाय प्रयोग किया जाता है और यह नहीं है कि मैं क्या चाहता हूँ।

मैं स्प्लैशस्क्रीन के साथ वही काम करने की कोशिश करने के लिए चला गया। मैं अगर मामलों का एक समूह था:

CGFloat height = [UIScreen mainScreen].currentMode.size.height; 

if (height == 1136) 
{ 
    //Choose image here 
} 
else if (height == 960) 
{ 
    //Choose image here 
} 
else if (height == 480) 
{ 
    //Choose image here 
} 
self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:chosenImage]]; 

लेकिन colorWithPatternImage समारोह का मानना ​​है कि chosenImage 1 अंक = 1 पिक्सेल से भी जाना जाता। इसलिए मैं आईफोन 5 स्क्रीन पर फिट होने का प्रयास करने वाली गैर-रेटिना तस्वीर के साथ समाप्त होता हूं। यह कैसा दिखता है? ऐसा लगता है कि मैं जिस छवि को चाहता था उसके शीर्ष बाएं चतुर्भुज को पूरे आईफोन 5 स्क्रीन पर प्रदर्शित किया गया है। ऐसा लगता है कि कोई रेटिना स्केलिंग लागू नहीं किया गया था।

मुझे यह पहचानने के लिए आईफोन की आवश्यकता है कि मेरे पास पृष्ठभूमि के रूप में उपयोग करने के लिए रेटिना-अनुकूल आईफोन 5 तस्वीर है। मैं यह कैसे करु?

उत्तर

7

मैं इस कोड here पाया, शायद यह आप में मदद करता है:

UIImage *tmpImage = [UIImage imageNamed:@"[email protected]"]; 
UIImage *backgroundImage = [UIImage imageWithCGImage:[tmpImage CGImage] 
               scale:2.0 
             orientation:UIImageOrientationUp]; 
self.window.backgroundColor = [UIColor colorWithPatternImage:backgroundImage]; 
संबंधित मुद्दे