व्यवहार में, हर कोई UICollectionView का उपयोग करता है जो मैं भर में आया हूं, जब उन्हें केवल UITableView की आवश्यकता होती है। "यह एक आयामी है। यह ऊपर और नीचे जाता है। आप लेआउट और डेटा के लिए अनावश्यक प्रतिनिधि पद्धति क्यों जोड़ रहे हैं?"। मैंने एक बार एक अतिरिक्त 2 घंटे बिताए, जिससे स्टार्टअप को यह पता लगाने में मदद मिली कि उनका UICollectionViewCell क्यों स्खलित हो गया क्योंकि मालिक, जिसने एनिमेशन मैनुअल नहीं पढ़ा था, न ही HIG, और न ही UICollectionView गाइड, ने इसका उपयोग करने और चर हाइट्स और एनिमेशन जोड़ने का फैसला किया। कहने की जरूरत नहीं है, उन्होंने एक गैर-व्यावसायिक-महत्वपूर्ण मुद्दे पर खुद को एक सिरदर्द और बहुत अधिक समय गंवा दिया, वह केवल टेबल सेल का उपयोग करके बचा सकता था, क्योंकि कोई अतिरिक्त लेआउट प्रतिनिधि + निब नहीं है।
मुझे यह सीधे प्राप्त करने दें, मैं UICollectionView के लिए सभी हूँ, जब आपके डेटा और डिस्प्ले को इसकी आवश्यकता है। वे बहुत शक्तिशाली हैं। लेकिन व्यवहार में, मैंने देखा है कि ज्यादातर लोग उन्हें सूचियों पर उपयोग कर रहे हैं।
यह एक और दोष लाता है। वे छोटी, निरंतर सूचियों पर भी उपयोग किए जाते हैं जो कभी भी नहीं बदलेंगे। इस मामले में, बस एक एक्सिब बनाओ। या एक कस्टम दृश्य लिखें जो उन्हें स्टैक करता है। क्यों? क्योंकि आपको बटन या स्विच के साथ 5 सेट के लिए मेमोरी मैनेजमेंट की आवश्यकता नहीं है। यदि वे बदल सकते हैं, तो हाँ, एक सूची का उपयोग करें। यदि आप भौतिकी चाहते हैं, तो UICollectionView कुछ शांत प्रभावों के साथ अच्छी तरह से काम करता है। लेकिन क्या आपको वास्तव में 5 लेबल के लिए 5 प्रतिनिधि विधियों और एक लेआउट सिस्टम को जोड़ने की आवश्यकता है जो कभी भी स्थानांतरित नहीं होंगे?
इसके अलावा, मैं यह नहीं भूल रहा हूं कि iOS में भी एक देशी स्टैकिंग दृश्य है। मैं यह कभी नहीं पा सकता कि मैं कैसा चाहता हूं, भले ही मैं 2D और एनीमेशन सिस्टम में काफी माहिर हूं, इसलिए मैं बिल्ट-इन का उपयोग कभी नहीं करता।
मैं बस इतना कह रहा हूं कि अपनी आवश्यकताओं को परिभाषित करें। हो सकता है कि आपको इन दोनों में से किसी की आवश्यकता न हो, यदि आपका UI आइटमों को जोड़ने / हटाने और स्वयं को ताज़ा नहीं कर रहा है। या हो सकता है कि आप कार्ड गेम लिखना चाहते हैं और उन्हें वस्तुतः एक मेज पर फेंकना चाहते हैं, फिर इसके लेआउट गाइड के लिए भौतिकी प्रणाली के साथ UICollectionView का उपयोग करें।