2013-09-06 8 views
12

मैं अपने यूआईटीएबीबार के लिए छवियां बना रहा हूं। मैं उन्हें आकार 60x60 बना रहा हूं, क्योंकि यह रेटिना स्क्रीन का उपयोग करता है। हालांकि, जब मैं उस आकार का उपयोग करता हूं, तो यह बार में बहुत बड़ा दिखाई देता है, ताकि आप केवल छवि का हिस्सा देख सकें। जब मैं इसे 30x30 तक कम करता हूं, तो यह काम करता है, लेकिन यह आकार गैर-रेटिना डिस्प्ले के लिए माना जाता है। जब मैं 60x60 का उपयोग करता हूं तो यह ठीक से क्यों नहीं दिखता है?UITabBarItem छवि का आकार

+5

सुनिश्चित करें कि आपकी 60x60 रेटिना छवि '@ 2x' प्रत्यय के साथ नामित किया गया है

यहाँ एक कोड उदाहरण है फ़ाइल नाम – rmaddy

+0

धन्यवाद, यह काम किया !! – user2397282

+0

[आईओएस 7 टैबबार आइकन बहुत बड़ा] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/22166644/ios7-tabbar-icons-too-big) –

उत्तर

10

आपको शायद अपनी रेटिना छवि का नाम [email protected] पर बदलना पड़ सकता है।

6

आपको यह व्यवहार मिल रहा था क्योंकि आप एक उच्च रिज़ॉल्यूशन छवि की आपूर्ति कर रहे थे, जब आईओएस मानक रिज़ॉल्यूशन छवि की तलाश में था।

एक्सेसिंग डिवाइस के रिज़ॉल्यूशन के आधार पर आईओएस स्वचालित रूप से आपके लिए उपयुक्त छवि आकार का चयन करता है। तो रेटिना डिस्प्ले के लिए, "मानक रिज़ॉल्यूशन" छवि, गैर-रेटिना उपकरणों के लिए, और "उच्च रिज़ॉल्यूशन" छवि की आपूर्ति के लिए आप जिम्मेदार होंगे। जिस तरह से आप आईओएस में यह कर अपने फ़ाइल नाम के अंत में "@ 2x" संलग्न करने के लिए है, लेकिन फाइल एक्सटेंशन, इस तरह से पहले:

my-image.png  // for non-retina displays (Ex: 30x30 dpi) 
[email protected] // for retina displays (Ex: 60x60 dpi) 
[email protected] // for retina displays(plus editions) (Ex: 90x90 dpi) 

फिर, जब आप अपने XCode प्रोजेक्ट में फ़ाइलों को संदर्भित कर रहे हैं, तो आप केवल मानक रिज़ॉल्यूशन (उदाहरण के लिए, "my-image.png") पर फ़ाइल नाम की आपूर्ति करने की आवश्यकता है और यदि एक्सेसिंग डिवाइस में रेटिना डिस्प्ले है, तो एक्सकोड स्वचालित रूप से आपके लिए "@ 2x" प्रत्यय वाली फ़ाइल का चयन करेगा। यह बहुत सुविधाजनक है, क्योंकि यह हमें डेवलपर्स को यह पता लगाने से बचाता है कि डिवाइस में रेटिना डिस्प्ले है या नहीं, और हमें किस छवि को आपूर्ति करने की आवश्यकता है।

// Select an image named "my-image.png" 
UIImage *img = [UIImage imageNamed:@"my-image.png"]; 

// If the device this code is run on is a retina device, 
// then Xcode will automatically search for "[email protected]" and "[email protected]" 
// otherwise, it will use "my-image.png" 

आप एप्पल डेवलपर की साइट के माध्यम से विषय पर और अधिक पढ़ सकते हैं:: Optimizing for High Resolution

संबंधित मुद्दे