पर मेरे पास UICollectionView
है और मैं BackgroundView में कोई डेटा मौजूद है या नहीं, पृष्ठभूमि पृष्ठभूमि का उपयोग करके पृष्ठभूमि छवि सेट करने का प्रयास कर रहा हूं। मेरे पास नेविगेशन है जो डेटा को बदल देगा, और संग्रह दृश्य को पुनः लोड करेगा ([self.collectionView reloadData]
पर कॉल करना)। किसी कारण से मुझे बहुत अजीब परिणाम मिल रहे हैं। सबसे पहले, कभी-कभी जब मैं संपत्ति सेट करता हूं तो यह संग्रह कक्ष के शीर्ष पर दिखाई देता है और उन्हें अस्पष्ट करता है। दूसरा, जब मैं संपत्ति को बदलने की कोशिश करता हूं तो यह स्क्रीन पर नहीं बदलता है। यह मुझे पागल कर रहा है! यह लागू करने के लिए एक आसान बात लग रहा था!पृष्ठभूमि बदलने में असमर्थ UICollectionView
तो कोड में। UICollectionViewController
- (void)viewDidLoad {
[self loadSections];
[self setupBackgroundView;
}
के लिए viewDidLoad
में लोड वर्गों विधि सिर्फ डेटा मैं संग्रह देखने के लिए, जो तब भी पृष्ठभूमि दृश्य जिसके आधार पर जोड़ने के लिए अगर वहाँ क्या देखने का फैसला करता है स्थापित करने के लिए एक विधि कॉल के लिए उपयोग कर रहा हूँ लोड करता है नीचे के रूप में किसी भी डेटा:
- (void)loadSections {
[self loadPictures];
[self setupBackgroundImage];
}
- (void)setupBackgroundImage {
if ([self.sections count] == 0 || !self.sections) {
self.collectionView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TakePhoto"]];
}
else {
self.collectionView.backgroundView = nil;
}
}
अब जब दृश्य पहली बार लोड, अगर वहाँ कोई डेटा और इसलिए कोई कोशिकाओं प्रदर्शित करने के लिए पृष्ठभूमि छवि सही ढंग से आता है। मैं फिर डेटा बदलता हूं और अब मेरे पास दिखाने के लिए कुछ सेल्स हैं, सेटअप बैकग्राउंड इमेज कहा जाता है और मैं यह सत्यापित कर सकता हूं कि पृष्ठभूमि इमेज प्रॉपर्टी शून्य पर सेट है (मैंने यहां भी तोड़ दिया है और मूल्य की जांच की है और यह शून्य है)। लेकिन पृष्ठभूमि छवि अभी भी दिखाई दे रही है।
इसके अतिरिक्त यदि मैं नील को दूसरी छवि में बदलता हूं तो यह नई छवि कभी नहीं दिखायी जाती है।
और इससे भी अधिक अजीब। अगर मेरे पास कुछ कक्ष प्रदर्शित होते हैं और पृष्ठभूमि छवि सेट करते हैं तो यह छवि कोशिकाओं के पीछे अच्छी तरह से प्रदर्शित होती है। यदि मैं फिर डेटा को एक नए डेटा सेट के साथ पुनः लोड करता हूं, तो छवियों को कोशिकाओं के सामने प्रदर्शित किया जाता है, जिससे उन्हें अस्पष्ट किया जाता है। मुझे नहीं पता कि यह कैसे होता है तब पृष्ठभूमि दृश्य सभी के पीछे होना चाहिए।
क्या कोई जानता है कि यह क्यों हो रहा है। क्या यह कहीं भी कैश हो रहा है? या मैं बस कुछ मूर्खतापूर्ण कर रहा हूँ? मैं यहां कुल नुकसान में हूं - इस पर कस्टम लेआउट लिखने के बजाय इस पर अधिक समय बिताया है!
कोई मौका कई का उपयोग 'UICollectionViews' बनाए जा रहे हैं और subviews के रूप में जोड़ा? इससे आप जो व्यवहार देख रहे हैं उसे समझाएंगे। – bobnoble
टिप्पणी bobnoble के लिए धन्यवाद। मैंने यह भी सोचा कि क्या यह हो सकता है। जहां तक मैं कह सकता हूं, दोनों कोड के माध्यम से और चल रहे उपकरण आवंटन उपकरण से, फिर नहीं, केवल एक UICollectionView है। – SimonB
कोई भी मौका आपके सेटअप बैकग्राउंड इमेज को कभी-कभी मुख्य धागे के अलावा किसी धागे पर बुलाया जा रहा है? – honus