मेरे पास UITableView है। प्रत्येक पंक्ति वीडियो, इमेज इत्यादि के साथ भारी वस्तु है जब उपयोगकर्ता इस दृश्य को स्क्रॉल करता है तो मैं दृश्यमान पंक्तियों की स्मृति को कैसे जारी कर सकता हूं और वर्तमान दृश्य पंक्तियों को लोड कर सकता हूं?UITableView की कोशिकाओं को रिलीज़ नहीं होने पर
उत्तर
मुझे लगता है कि आप स्मृति को जारी करने के बारे में बात कर रहे हैं जिसका उपयोग आपकी पंक्ति की छवियों और वीडियो द्वारा किया जाता है, न कि पंक्ति स्वयं।
अपने tableview प्रतिनिधि में,
-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView
आपको बताता है कि जब tableview स्क्रॉल रुक गया है।
[myTableView indexPathsForVisibleRows]
आपको जो दिखाई देता है उसका एक सरणी देता है।
यदि आपकी पंक्ति इस सरणी में नहीं है, तो यह दिखाई नहीं दे रही है, और आप इसकी छवि/वीडियो सफाई कर सकते हैं।
क्या आप ऐप्पल की सिफारिशों के अनुसार UITableViewCells रीसाइक्लिंग कर रहे हैं? यदि नहीं, तो आपको ऐप्पल के दस्तावेज़ों को पढ़ना होगा। CellForRowAtIndexPath के अंदर: प्रतिनिधि के पास आपके पास कुछ होना चाहिए [customCell setMediaObjects:]। अपने कस्टमसेल क्लास के अंदर आप स्मृति से सभी पिछले मीडिया ऑब्जेक्ट्स को रिलीज़ कर सकते हैं।
A Closer Look at Table-View Cells - Apple Documentation
जब आप फोन dequeueReusableCellWithIdentifier पहले 10 (सिर्फ दस कोशिकाओं एक पल में स्क्रीन पर दिखाया जा सकता है) कोशिकाओं बनाया जाएगा, तो वे सिर्फ लोड किया जाएगा और दिखाने के लिए कॉन्फ़िगर किया गया। तो, कोशिकाएं जारी नहीं की जाती हैं।
जैसा कि अन्य ने कहा है, आपको यह सुनिश्चित करना चाहिए कि आप कोशिकाओं को सही तरीके से रीसाइक्लिंग कर रहे हैं, और उन चीज़ों को नष्ट नहीं कर रहे हैं जिन्हें सेल का पुन: उपयोग करने के बाद भी आपको फिर से बनाने की आवश्यकता होगी।
लेकिन, आप अन्य संपत्तियां जारी करना चाहेंगे जो सेल या उसके विचार बनाए रहे हैं। या यदि उस सेल में कोई लंबित डाउनलोड अनुरोध है, उदाहरण के लिए, आप अपनी प्राथमिकता को रीसेट करना चाहेंगे या सेल ऑफस्क्रीन होने पर भी उन्हें रद्द कर सकते हैं।
मुझे लगता है कि ऐसा करने के लिए स्पष्ट तरीका सिर्फ ओवरराइड करने के लिए -[UITableViewCell prepareForReuse]
यह है जब सेल पुन: उपयोग के लिए कतार में वापस डाल दिया जाता है कहा जाता है। यदि उपयोगकर्ता जल्दी से तालिका को ऊपर और नीचे ले जा रहा है, तो हो सकता है कि सेल सेल से स्क्रीन बंद होने के बाद सेल को साफ़ नहीं करना चाहें (उदाहरण के लिए indexPathsForVisibleRows को देखकर)।
लेकिन जब सेल वास्तव में पुन: उपयोग कतार में वापस डाल दिया जाता है, तो यह काम करने का एक अच्छा समय है क्योंकि आप जानते हैं कि सेल स्क्रीन पर फिर से दिखाई नहीं देगा जब तक कि आप इसे फिर से कॉन्फ़िगर नहीं करते हैं।
- 1. UITableView कोशिकाओं
- 2. स्थिर कोशिकाओं के साथ UITableView
- 3. UITableView से सीधे कोशिकाओं को कैसे निकालें?
- 4. यह ओवर-रिलीज़ क्यों है? UINavigationController/UITableView
- 5. विंडो बंद होने पर NSWindowController को रिलीज़ करें
- 6. संपादन मोड में नहीं होने पर UITableView अनुभाग जोड़ना/हटाना?
- 7. पेजिंग सक्षम होने पर UITableView पृष्ठ का आकार
- 8. कोशिकाओं के कोने त्रिज्या को बदलना समूहबद्ध UITableView
- 9. UITableView: tableFooterView प्रदर्शित होने पर कोड चलाएं?
- 10. स्क्रॉल व्यू को ऑफ़सेट करना UICollectionView/UITableView में समय-समय पर गायब होने वाली कोशिकाओं का कारण बनता है
- 11. dispatch_queue_t dispatch_release() का उपयोग करके रिलीज़ होने की आवश्यकता है?
- 12. UITableView
- 13. हटा सकते हैं और फिर से लोड UITableView कोशिकाओं
- 14. UITableView
- 15. क्या UITableView रीलोड होने पर कॉलबैक प्राप्त करना संभव है?
- 16. uitableview
- 17. uitableview
- 18. क्या मुझे xib संसाधनों को रिलीज़ करने की आवश्यकता है?
- 19. UITableView
- 20. पायथन मल्टीप्रोसेसिंग - प्रक्रिया पूरी होने पर स्मृति को कैसे रिलीज़ किया जाए?
- 21. iPhone: अस्तित्वहीन कोशिकाओं
- 22. dequeueReusableCellWithIdentifier पुन: उपयोग नहीं कोशिकाओं
- 23. तालिका दृश्य स्क्रॉल होने पर UITableView प्रतिनिधि कार्रवाई?
- 24. UIPopOverController + UITableView - सेल चयनित होने पर पॉपओवर छुपाएं
- 25. एंड्रॉइड: एप्लिकेशन समाप्त होने पर संसाधनों को कैसे रिलीज़ किया जाए?
- 26. मैं कैसे प्रोग्राम के रूप में मेरी UITableView में कोशिकाओं की ऊंचाई बढ़ा सकते हैं?
- 27. UITableView
- 28. MPMoviePlayerController को कैसे रिलीज़ करें?
- 29. UITableView की अनुक्रमणिकाPathForCell: indexPath.row
- 30. UITableView
पुन: प्रयोज्य कोशिकाओं का उपयोग करें और मेमोरी हैंडलिंग के बारे में भूल जाएं (इसे सिस्टम पर छोड़ दें) – samfisher