Monday, 15 August 2011

ios - Changing the state of the CollectionView Cell -


  - (UICollectionViewCell *) संग्रह देखें: (UICollectionView *) collectionView cellForItemAtIndexPath: (NSIndexPath *) indexPath {// NSLog (@ "श्रेणी कक्ष दर्ज करें"); श्रेणी ViewCell * सेल = (श्रेणी ViewCell *) [collectionView dequeueReusableCellWithReuseIdentifier: सेलआईडेंटिफ़ायर फॉर इंडेक्सपाथ: इंडेक्सपाथ]; [Cell.imgCat setImage: [UIImage imageNamed: [श्रेणी छवि ऑब्जेक्टऐटइंडएक्स: इंडेक्सपाथ.रो]]]; [Cell.labelCatName setText: [[NSString stringWithFormat: @ "% @", [बिल्ली का नाम ऑब्जेक्टऐट इंडेक्स: इंडेक्सपाथ.रो]] पूंजीकृत स्ट्रिंग]]; अगर ([श्रेणियां [[एनएसएसटींग स्ट्रिंग विथ फॉर्मेट: @ "% d", (इंट) इंडेक्सपैथ.रो]] है एवल: @ यास]) {// एनएसएलॉग (@ "सेट सीमा"); Cell.layer.borderColor = [UIColor redColor] .CGColor; Cell.layer.borderWidth = 3; } रिटर्न सेल; } - (शून्य) संग्रहदृश्य: (UICollectionView *) collectionView didSelectItemAtIndexPath: (NSIndexPath *) अनुक्रमणिकापैथ {वर्ग ViewCell * सेल = (श्रेणी ViewCell *) [collectionView cellForItemAtIndexPath: indexPath]; Cell.layer.borderWidth = 3; Cell.layer.borderColor = [UIColor redColor] .CGColor; // एनएसएलॉग (@ "% i", (इंट) इंडेक्सपैथ.आईटेम); श्रेणियां [[NSString stringWithFormat: @ "% i", (इंट) इंडेक्सपैथ.आइटम]] = @ यस; } - (शून्य) संग्रहदृश्य: (UICollectionView *) collectionView didDeselectItemAtIndexPath: (NSIndexPath *) अनुक्रमणिकापैथ {वर्ग ViewCell * cell = (श्रेणीViewCell *) [collectionView cellForItemAtIndexPath: indexPath]; Cell.layer.borderColor = [UIColor clearColor] .CGColor; श्रेणियां [[NSString stringWithFormat: @ "% i", (इंट) इंडेक्सपैथ.आईटेम]] = @ नो; }  

समस्या: उपरोक्त कोड आपको एक संकलन दिखाएगा जो सेल पर डिफ़ॉल्ट रूप से चुने गए हैं। हालांकि, इन चयनित कक्षों के राज्य चयनित नहीं हैं। इसलिए मुझे उनको अचयनित करने के लिए दो बार टैप करना होगा क्योंकि पहली नल उन्हें चुनना है, और दूसरा नल उन्हें अचयनित करना है।

मैंने सेल के लिए चयनित सेट करने की कोशिश की है लेकिन यह या तो काम नहीं करता है। सेल की एक लाल सीमा होगी, जब भी उपयोगकर्ता ने एक सेल और स्पष्ट रंग का चयन किया होगा जब उपयोगकर्ता सेल का चयन रद्द करेगा।

मैंने कोशिश की:

  cell.selected = yes;  

लेकिन यह स्थायी रूप से एक संकलन दे देता है। दृश्य सेल को एक लाल सीमा है।

और इसे सेलफ़ोर आईटीमएटआईंडएक्सएपथ विधि में जोड़ें अभी भी चाल नहीं करता है।

  [सेल्फ कलेक्शनव्यू: कलेक्शनव्यूजसचैक्टइटम एटइंडएक्सपाथ: इंडेक्सपेथ];  

श्रेणी दृश्यकेल.एम

  - (शून्य) सेट सेलेक्टेड: (BOOL) चयनित एनिमेटेड: (BOOL) एनिमेटेड {[सुपर सेट से चुने गए: चयनित]; // NSLog (@ "पारित एनिमेटेड चुनें"); यदि (चयनित) {self.flagHighlight = NO; स्वयं। चयनित = नहीं; Self.layer.borderColor = [UIColor clearColor] .CGColor; Self.layer.borderWidth = 3; } और {self.flagHighlight = YES; स्वयं। चयनित = हाँ; Self.layer.borderColor = [UIColor redColor] .CGColor; Self.layer.borderWidth = 3; }}  

दृश्य को प्रोग्राम के रूप में लोड किए जाने पर मैं एक सेल का चयन कैसे करूँगा? या इससे भी बेहतर सिर्फ चयनित सेल की स्थिति को बदलते हैं।

अग्रिम धन्यवाद।

मेरी अपनी समस्या का जवाब देना समाप्त हो रहा है।

तो मैं [collectionView selectItemAtIndexPath: indexPath एनिमेटेड: NO scrollPosition: UICollectionViewScrollPositionNone];

में cellForItemAtIndexPath।

उद्देश्य अच्छी तरह से परोसें। < / P>


No comments:

Post a Comment