2013-09-27 3 views
5

मेरा प्रश्न निम्न है: शीर्षलेख वाली एक तालिका है। आप शीर्षक पर क्लिक करते हैं, यह बादतालिका दृश्य अनुभाग पुनः लोड होने के बाद छिपे हुए हैं

[self.tableView reloadSections: [NSIndexSet indexSetWithIndex: section] withRowAnimation: UITableViewRowAnimationAutomatic]; 

वास्तव में पुन: प्रारंभ होता, पूर्व संस्करण (आईओएस 6.1.3 और कम) में, सेल पुनः लोड और सब कुछ ठीक है। आईओएस 7 कोशिकाओं पर छुपा हो जाता है। यह क्या है और इसे कैसे हल करें? और न केवल उस सेल को क्लिक किया गया है, लेकिन अगला खड़ा (निचला या ऊपर)।

<MyHeaderCell: 0x146ea600; baseClass = UITableViewCell; frame = (0 0, 320 75); hidden = YES; autoresize = W; gestureRecognizers = <NSArray: 0x146e10c0>; layer = <CALayer: 0x146e95d0 » 

असल में, यह लॉग में उन मुद्दों में से एक है। यह स्पष्ट रूप से देखा जाता है कि कोशिकाएं छिपी हुई हैं।

फिर भी, जब मैं [self.tableView reloadData]; का उपयोग करता हूं तो सब कुछ ठीक है, लेकिन मुझे एनीमेशन की आवश्यकता है।

+0

तो, हेडर पर क्लिक करें और पुनः लोड ट्रिगर करें, और "और न केवल सेल जो क्लिक किया गया है"? मैं उलझन में हूं, और आपको और कोड दिखाना होगा। –

उत्तर

3

यह एक पुराना सवाल है, लेकिन मुझे लगता है कि मुझे पता है कि इसका क्या कारण है।

क्या यह इस "स्थिर" सेल है कि आप इसका संदर्भ रखते हैं? उस मामले में, यह समस्या शायद यह है:

जब आप एक एनिमेटेड पुनः लोड करते हैं, तालिका दृश्य बाहर मौजूदा कोशिकाओं जबकि एक ही समय नई कोशिकाओं में fading में फीका करना होगा। समस्या यह है कि जब "नया" सेल पुराना एक जैसा सेल होता है, वही सेल दोनों एक ही समय में फीका और फीका होगा! और आपके मामले में, फीका आउट एनीमेशन प्राथमिकता लेता है और सेल छिपा हुआ है।

यह हमेशा कोशिकाओं पुन: उपयोग करने के बजाय एक ही संदर्भ का उपयोग करके तय करता है, तो, फिर भी, मुझे पता है कि यह हमेशा इष्टतम नहीं है।

0

[tableView reloadData] को [tableView reloadSections:withRowAnimation] के ठीक बाद एनीमेशन को प्रभावित किए बिना इसे ठीक करता है।

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