2011-10-11 11 views
24

मेरे पास एक बंडल है जहां मैंने इसमें छवियां रखी हैं।आईओएस: इंटरफ़ेस बिल्डर में कस्टम बंडल में छवियों का उपयोग कैसे करें?

सामग्री हैं:

MyBundle.bundle/images/picture1.png 
MyBundle.bundle/images/picture2.png 

मैं अपने प्रोजेक्ट में MyBundle.bundle घसीटा।

अब मैं इन छवियों को इंटरफेस बिल्डर में देख सकता हूं और इनका उपयोग भी कर सकता हूं। हालांकि, जब मैं ऐप चलाता हूं, तो मुझे छवियां नहीं दिखाई देती हैं।

क्या गलत है?

धन्यवाद,

उत्तर

36

यकीन है कि बंडल में कॉपी हो रही है सुनिश्चित लक्ष्य के लिए परियोजना सेटिंग के "के चरण बनाएँ"।

इसके अलावा, उन्हें progrmatically सेट करके देखें और अगर वे दिखाने देखें:

myImageView.image = [UIImage imageNamed:@"MyBundle.bundle/images/picture1.png"]; 

मैं सिर्फ अपनी परियोजना में इस की कोशिश की और पाया है कि आप क्या करने की जरूरत है बंडल नाम के साथ छवि निर्दिष्ट है कि सामने इस तरह में:

Image in IB

आईबी में छवि होगा देखो टूट:

Broken

लेकिन जब आप और रन अपनी परियोजना का निर्माण छवि सही ढंग से दिखाएगा।

तो, अपने मामले में, वास्तविक इंटरफ़ेस बिल्डर छवि बॉक्स में MyBundle.bundle/images/picture1.png का उपयोग करें।

इसके अलावा, जब आप न सामने बंडल नाम डाल, तो आप इस चेतावनी जब आप बंडल छवि के साथ दृश्य लोड मिलती है:

2011-10-12 08:22:16.360 UTDebug[721:11c03] Could not load the "map.png" image referenced from a nib in the bundle with identifier "com.companyname.myproject" 
+0

हैलो। हां कोड की रेखा myImageView.image = [UIImage imageNamed: @ "MyBundle.bundle/images/picture1.png"]; काम करता है। हालांकि, अगर मैं आईबी में छवि सेट करता हूं, तो मुझे लॉग में यह चेतावनी मिलती है: पहचानकर्ता "com.xxx" के साथ बंडल में एक निब से संदर्भित "picture1.png" छवि को लोड नहीं किया जा सका और यह दिखाई नहीं देता है। मैंने "बिल्ड चरण" की जांच की और बंडल वहां है। कोई अन्य सुझाव? क्या आपने इसे स्वयं काम करने का प्रबंधन किया था? –

+0

ठीक है, मुझे समस्या मिली। आपको आईबी में वास्तविक छवि बॉक्स में बंडल नाम डालना होगा। अधिक के लिए मेरे उत्तर संपादन देखें। – chown

+0

धन्यवाद! इसने काम कर दिया! उन्हें आईबी में _broken_ देखने वाली छवि के मुद्दे को ठीक करना चाहिए क्योंकि यह भ्रामक है! एक बार फिर धन्यवाद! –

8

तुम भी, बंडल में XIB डाल करने के लिए की जरूरत है। जब आप ऐसा करते हैं, तो इंटरफ़ेस के लिए संसाधन बंडल के सापेक्ष होंगे, इसलिए वे आईबी में काम करेंगे और जब आप अपने ऐप में इंटरफ़ेस लोड करेंगे।

+0

अच्छा! मैने इसके बारे में कभी नहीं सोचा था। – chown

+0

यह पूरी तरह से काम किया! – ram

0

आपके पास मैक ओएस एक्स लक्ष्य के रूप में बंडल बनाने से भटकने की सेटिंग हो सकती है।

समाधान के लिए मेरे other answer देखें।

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