UICollectionViews को एक कस्टम UITableViewCell में जोड़ना जो Xib के माध्यम से किया जाता है

UITableViewCell में UICollectionView को लागू करने में कितनी बाधाएँ आईं, मुझे यह जानकर आश्चर्य हुआ। इसलिए, यह ट्यूटोरियल यहाँ है, मुझे आशा है कि यह आपको बहुत समय बचाता है।

नोट: यह ट्यूटोरियल शुरुआती लोगों के लिए नहीं है। यह माना जाता है कि आप टेबल व्यू के बारे में जानते हैं और xib फाइलों के साथ कस्टम सेल बना रहे हैं।

इसके अलावा, मैं दृश्य घटक के बारे में कुछ भी नहीं बताता हूं।

1) अपने Xib TableViewCell में एक UICollectionView जोड़ें

  1. UICollectionView को अपने TableViewCell Xib में खींचें
  2. बाधाएं जोड़ें
  3. और पता करें कि आप अपने नए जोड़े गए UICollectionView में CollectionViewCells नहीं जोड़ सकते :)

यह पता चला है कि आपको किसी भी संग्रह दृश्य कोशिकाओं को रखने के लिए एक अलग फ़ाइल की आवश्यकता है जिसे आप प्रदर्शित करना चाहते हैं। (जब आपका UICollectionView Xib फाइल में है)

2) अपने प्रोजेक्ट में UICollectionViewCell और Xib फ़ाइल जोड़ें

छवि

आप अपने संग्रह व्यू सेल Xib सेल में जो कुछ भी चाहते हैं (लेबल, इमेज आदि जोड़ें) कर सकते हैं, इस ट्यूटोरियल के प्रयोजनों के लिए हम इसे यहाँ नहीं छूते हैं।

सुनिश्चित करें कि आप अपने सेल को एक resuableIdentifier दें।

छवि

3) सत्यापित करें कि आपके TableViewCell वर्ग में UICollectionView Data Source और प्रतिनिधि प्रोटोकॉल हैं।

चरण 1: अपनी टेबल पर लौटें Xells फ़ाइल जिबल्स।

छवि

चरण 2: अपने संग्रह दृश्य से 'फ़ाइल के स्वामी' तक खींचें और डेटा स्रोत और फिर प्रतिनिधि चुनें।

छवि

चरण 3: अपने संग्रह दृश्य से अपने TableViewCell वर्ग में खींचें और एक IBOutlet बनाएं

छवि

चरण 4: सत्यापित करें कि आपका TableViewCell वर्ग UICollectionView डेटा स्रोत और डेलिगेट प्रोटोकॉल अनुरूप है।

class TableViewCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource { @IBOutlet weak var collectionView: UICollectionView! override func awakeFromNib() { super.awakeFromNib() // Initialization code self.collectionView.dataSource = self self.collectionView.delegate = self self.collectionView.register(UINib.init(nibName: "CollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "collectionViewID") } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 15 } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionViewID", for: indexPath as IndexPath) as! CollectionViewCell return cell } } 

कोड स्पष्टीकरण:

  1. वर्ग विवरण में UICollectionViewDelegate और UICollectionViewDataSource जोड़ें
  2. डेट्रोइट कलेक्शन व्यू और डेलिगेट बनाएं = awakeFromXib में स्वयं
  3. फ़ंक्शन नंबर जोड़ेंऑफइमेट्सइन्फेक्शन
  4. फ़ंक्शन सेलफ़ोर इटामएट जोड़ें
  5. अपने कस्टम सेल के रूप में अपने reuseIdentifier के साथ एक सेल बनाएँ।

समस्या निवारण चरण:

  1. क्या मेरे पहचानकर्ता सौंपे गए हैं और सही हैं?
  2. क्या मैंने अपने संग्रह दृश्य से फ़ाइलें स्वामी को आपकी Xib फ़ाइल में खींच लिया है?

यदि आपके कोई प्रश्न हैं, तो टिप्पणियों में लिखें।

अगर यह आपकी मदद करता है या भविष्य में मदद करेगा, जैसे।

मुझे उम्मीद है कि कोई बहुत समय बचाएगा।

Source: https://habr.com/ru/post/hi449478/


All Articles