मेरे पास UIScrollView
में एक गैर स्क्रॉलिंग UITableView
है। मैंने UITableView
के फ्रेम आकार को इसके सामग्री आकार में सेट किया है।एक UITableView की सामग्री आकार कब सेट हो जाता है?
जब मैं UITableView
पर एक पंक्ति जोड़ता हूं, तो मैं insertRowsAtIndexPaths:withRowAnimation
पर कॉल करता हूं: UITableView
पर। तब मैं UITableView
के फ्रेम आकार बदलने के लिए एक विधि कॉल:
- (void)resizeTableViewFrameHeight
{
// Table view does not scroll, so its frame height should be equal to its contentSize height
CGRect frame = self.tableView.frame;
frame.size = self.tableView.contentSize;
self.tableView.frame = frame;
}
हालांकि यह है कि contentSize
इस बिंदु पर अपडेट नहीं किया गया लगता है। यदि मैं पंक्तियों और खंडों की संख्या के आधार पर उपर्युक्त विधि में मैन्युअल रूप से फ्रेम की गणना करता हूं, तो विधि ठीक से काम करती है।
मेरा सवाल है, मैं contentSize
को अपडेट करने के लिए UITableView
कैसे प्राप्त कर सकता हूं? मुझे लगता है कि मैं reloadData
पर कॉल कर सकता हूं और शायद यह ऐसा करेगा, लेकिन जब मैं केवल एक सेल डालने वाला हूं तो पूरी तालिका को फिर से लोड करने में अक्षम लगता है।
मैंने कोशिश की, लेकिन यह मेरे लिए काम नहीं किया। लेकिन, मैं यहां एक और समाधान के साथ आने में सक्षम था जिसे मैंने यहां पोस्ट किया था: http://stackoverflow.com/questions/17634617/when-does-uitableview-content-size-update-with-row-insert-delete-animation/18665064 # 18665064 – Daren
ओह, यह केवल प्रारंभिक सामग्री आकार के लिए है। जब आकार बदल रहा है तो आपका माइलेज अन्य मामलों के लिए भिन्न हो सकता है। – Farthen
उन लोगों के लिए नोट जिनके लिए यह काम नहीं कर रहा है - tableView: अनुमानित हाइटफॉररोएट इंडेक्सपैथ सामग्री सामग्री के साथ गड़बड़ है, तो आप इसके कार्यान्वयन को हटाकर भाग्य प्राप्त कर सकते हैं। – weienw