2011-08-10 5 views
5

में मेरे पास कोई एप्लिकेशन नहीं है, जहां अधिकांश संसाधन संसाधन अलग संसाधन बंडल में संग्रहीत होते हैं (ऐसा करने का एक वैध कारण है)। इस संसाधन बंडल को मुख्य एप्लिकेशन बंडल के साथ परियोजना में जोड़ा गया है और जब मैं इंटरफ़ेस बिल्डर में अपना एनआईबी डिज़ाइन करता हूं, तो वे सभी छवियां आईबी के अंदर दिखाई देती हैं (यानी वे मेरे UIImageView के लिए ड्रॉप सूची में दिखाई देते हैं और वे मेरे यूआई में ठीक से प्रदर्शित होते हैं)। हालांकि जब मैं सिम्युलेटर में अपना ऐप चलाता हूं तो उन सभी छवियां गायब होती हैं। मुख्य एप्लिकेशन बंडल के अतिरिक्त इस अतिरिक्त संसाधन बंडल के अंदर उन छवियों को देखने के लिए UIKit को बताने का कोई तरीका है?आईबी में दिखाई देने वाले एक अलग बंडल में स्थित संसाधन, लेकिन रनटाइम

मैं उन छवियों को मैन्युअल रूप से लोड कर सकता हूं, कोई समस्या नहीं है, लेकिन मैं उन एनआईबी के डिजाइन/त्वचा को बदलने में आसान बनाने के लिए इंटरफ़ेस बिल्डर का उपयोग करने का एक तरीका ढूंढ रहा हूं।

अद्यतन: जबकि उस बंडल से छवि फ़ाइलें आईबी में ड्रॉप सूची में उपलब्ध हैं, वे रनटाइम में लोड नहीं होंगे। लेकिन अगर मैं इस तरह आईबी में एक बंडल नाम के साथ उनके नाम उपसर्ग:

Sceenshot

तब वे क्रम में ठीक से लोड होगा, लेकिन आईबी उन्हें बड़ी नीली प्रश्न चिह्न को प्रदर्शित करेगा।

अब सवाल यह है कि - दोनों दुनिया के सर्वश्रेष्ठ कैसे हैं और आईबी (डिज़ाइन-टाइम) और रनटाइम दोनों में चित्रों को ठीक से प्रदर्शित किया गया है।

+0

जब आप बंडल कहते हैं, तो क्या आपको वास्तव में 'बंडल' का मतलब है? आपने इसे अपने एक्सकोड प्रोजेक्ट में कैसे जोड़ा? क्या हम प्रोजेक्ट नेविगेटर का स्क्रीनशॉट देख सकते हैं? – jtbandes

+0

हां, यह एक वास्तविक बंडल है। आप इसे अपनी परियोजना में किसी अन्य फ़ाइल की तरह जोड़ सकते हैं और आईबी स्वचालित रूप से अपनी सामग्री को उठाता है। यहां प्रोजेक्ट नेविगेटर [प्रोजेक्ट नेविगेटर] (https://img.skitch.com/20110810-jeyxrq8m35w939a41yjn1amwg8.jpg) का स्नैपशॉट है। –

+0

ये लोग क्लैम्स को काम करने के लिए मिला है http://stackoverflow.com/questions/7733565/ ios-how-to-use-images-in-custom-bundle-in-interface-builder, मैं इसे अपने ios6 sdk के साथ काम करने के लिए नहीं मिल सका –

उत्तर

3

मैं एक ही समस्या में भाग गया, और संभव है कि एक्सकोड आपके बंडल लक्ष्य को इकट्ठा करते समय आपकी छवियों को संकलित कर रहा है। चूंकि बंडल लक्ष्य आईओएस पर पूरी तरह से समर्थित नहीं हैं, इसलिए आपको उन्हें मैक ओएस एक्स लक्ष्य के रूप में बनाना होगा। इससे स्थान पर एक समस्याग्रस्त निर्माण सेटिंग होती है, अर्थात् COMBINE_HIDPI_ARTWORK, जिसे YES पर सेट किया जाएगा। इसके परिणामस्वरूप आपके सामान्य और @2x प्रकारों को आपके बंडल में एक tiff फ़ाइल में जोड़ा जा रहा है। परिणामस्वरूप फ़ाइल मैक ओएस पर समर्थित है लेकिन आईओएस नहीं।

(टिप के लिए this answer पर धन्यवाद)।

इसे ठीक करने के लिए, फ़ाइल नेविगेटर में अपनी बंडल-निर्माण प्रोजेक्ट का चयन करें, अपने बंडल लक्ष्य का चयन करें, बिल्ड सेटिंग्स टैब पर स्विच करें, और उपर्युक्त सेटिंग की खोज करें। फिर या तो पूरी पंक्ति का चयन करें और हटाएं या इसे NO पर सेट करें।

उस बिंदु पर आप कुछ भी विशेष किए बिना आईबी और कोड दोनों में अपनी छवियों का उपयोग करने में सक्षम होना चाहिए (यह सुनिश्चित करने के अलावा कि .xib और छवि एक ही बंडल में हैं)।