2012-09-18 19 views
12

मेरे कुछ ऐप्स पृष्ठभूमि के रूप में कस्टम छवियों का उपयोग करते हैं। उचित छवि रखने के लिए स्क्रीन आकार की जांच करने का सही तरीका क्या है?मैं आईफोन 5 के लिए पृष्ठभूमि छवियों का प्रबंधन कैसे करूं?

यह viewDidLoad में कुछ इस तरह होना चाहिए:

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]]; 
} 

कोई युक्ति/सलाह बहुत सराहना कर रहा है!

धन्यवाद!

उत्तर

16

निम्नलिखित कोड स्क्रीन के आकार/सीमाओं को चेक करता है। यदि स्क्रीन 586 अंक है (याद रखें, रेटिना के कारण स्क्रीन को स्क्रीन में मापा जाता है) हम जानते हैं कि यह नया 4-इंच रेटिना डिस्प्ले है।

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]; 
} 

भी देखें iOS 6 apps - how to deal with iPhone 5 screen size?

+2

आप छवि फ़ाइल नामों से "@ 2x" और .png टेक्स्ट को हटा सकते हैं और चीजों को काम करना चाहिए। आमतौर पर वहां "@ 2x" डालने का अच्छा विचार नहीं है क्योंकि यह छवि द्वारा हुड के तहत संभाला जाता है नाम: किसी भी तरह – Kevlar

+0

यह कहां जाएगा? "- viewdidLoad" – Gabriel

+0

हां। कोड मूल रूप से ल्यूक को मूल प्रश्न में डालता है, जहां वह 'व्यूडिडलोड:' – Bryan

1

ब्रायन का जवाब मेरे लिए काम किया इसके बाद के संस्करण को छोड़कर, मैं

[self.bgImageView setImage:backgroundImage]; 

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

सही छवि

बजाय केवल प्रदर्शित करता है अगर मैं का इस्तेमाल किया था कि पूर्व का प्रयोग करें।

+0

'पृष्ठभूमि इमेज व्यू' में कुछ डालने के लिए कह रहा है, यह स्पष्ट करने के लिए सिर्फ एक नाम था कि आप if-statement लिखते हैं। इसे ल्यूक द्वारा प्रश्न में रखा गया था। ऐसा कुछ नहीं है जिसे आप अपने कार्यक्रम में ढूंढने की उम्मीद कर रहे हैं। उसी टोकन द्वारा, 'bgImageView' आपके प्रोग्राम में सिर्फ एक नाम है, तब तक किसी और के लिए काम नहीं करेगा जब तक कि वे एक ही नाम नहीं लेते। – Bryan