Intereting Posts
दूसरे दृश्य पर लेबल अपडेट करें एक सर्वर पर चित्र पोस्ट करने के लिए UIImage को NSData और NSData को NSString में परिवर्तित करना स्विफ्ट का उपयोग करते हुए छवि पर टेक्स्ट ओवरलेइंग करना IOS UIGestureRecognizer आईओएस गेम सेंटर – एक डिवाइस पर प्रमाणीकरण त्रुटि आईओएस 6 AutoRotate UiNavigationController में सीलेयर एनीमेशन के लिए स्प्रिंगवाथडैम्पिंग? UIBezierPath का उपयोग करके छवि दृश्य पर ड्रा और मिटाएं UIScrollView केवल नीचे पर ऊर्ध्वाधर उछाल अक्षम करें बिना अपवाद अपवाद 'एनएसआईआईएनआईएनआईएन्सिस्टेंसी एक्सपैशन' के कारण ऐप रद्द करना, कारण: 'इंडेक्स 0 पर सेक्शन में 3 ऑब्जेक्ट पर कोई ऑब्जेक्ट नहीं' कोर छवि के लिए CIGaussianGradient फ़िल्टर का एक उदाहरण उपयोग NSDateformatter setDateFormat currentLocale के अनुसार UIBarbutton में UIAlertcontroller को पॉपओवर के रूप में कैसे लागू करें (तीर दिशा अप के साथ) मुझे स्थान प्रबंधक को अद्यतन करना कब रोक देना चाहिए? Xcodebuild को .mobileprovision फ़ाइल के साथ प्रदान करें

UICollectionView में एक सेल को हटाने के बाद सेल लेआउट ताज़ा करें

मैंने सेल ऊंचाई के गतिशील आकार बदलने के साथ एक UICollectionView बनाया है मैं इस तरह से सेल का आकार बदल रहा हूं:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let approximatedwidthoftextview = view.frame.width - 70 let size = CGSize(width: approximatedwidthoftextview, height: 1000) let attributes = [NSAttributedStringKey.font: UIFont(name: "Avenir Next", size: 18)] let estimatedFrame = NSString(string: allnotes[indexPath.row].note).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) return CGSize(width: view.frame.width, height: estimatedFrame.height + 38) 

}

जब मैं एक सेल को हटा देता हूं, तो शेष सेल के लेआउट को थोड़ा अजीब लगता है सामग्री कट जाती है

अजीब है, पिछले देखने नियंत्रक से नेविगेट करना और फिर इस नियंत्रक पर वापस आना सेल लेआउट को ठीक करता है और सेल सामान्य पर वापस जाते हैं।

कोई भी विचार जो यहाँ गलत है?

सामान्य अवस्था एक सेल हटाने के बाद राज्य

 import UIKit private let reuseIdentifier = "Cell" class AddedNotesCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout { var allnotes = [notesarray]() override func viewDidAppear(_ animated: Bool) { print(allnotes.count) } override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor(red:0.15, green:0.20, blue:0.22, alpha:1.0) // Uncomment the following line to preserve selection between presentations // self.clearsSelectionOnViewWillAppear = false // Register cell classes self.collectionView!.register(AddedNotesCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { // #warning Incomplete implementation, return the number of items return allnotes.count } override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { var tag = indexPath.row print(tag) } override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! AddedNotesCollectionViewCell // Configure the cell cell.deleteBtn.layer.setValue(indexPath.row, forKey: "index") cell.deleteBtn.addTarget(self, action: #selector(deleteUser(sender:)), for: UIControlEvents.touchUpInside) cell.backgroundColor = allnotes[indexPath.row].prioritycolor cell.textview.text = allnotes[indexPath.row].note // Remove the button from the first cell return cell } //deleting cell func @objc func deleteUser(sender:UIButton) { let i : Int = (sender.layer.value(forKey: "index")) as! Int allnotes.remove(at: i) addedNotesArrayGlobal.addednotesarrays.remove(at: i) collectionView?.reloadData() } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() collectionView?.collectionViewLayout.invalidateLayout() } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let approximatedwidthoftextview = view.frame.width - 70 let size = CGSize(width: approximatedwidthoftextview, height: 1000) let attributes = [NSAttributedStringKey.font: UIFont(name: "Avenir Next", size: 18)] let estimatedFrame = NSString(string: allnotes[indexPath.row].note).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil) return CGSize(width: view.frame.width, height: estimatedFrame.height + 32) } 

}

Solutions Collecting From Web of "UICollectionView में एक सेल को हटाने के बाद सेल लेआउट ताज़ा करें"

भले ही गतिशील रीसाइज़िंग कलेक्शन में अच्छी तरह से काम करता है उपरोक्त एल्गोरिदम का उपयोग करके, यह अभी पूरा नहीं हुआ है। मैंने यूआईटीबल वीव पर स्विच किया और गतिशील रीसाइज़िंग करने के लिए ऑटो लेआउट का इस्तेमाल किया। यह सरल, आसान और काफी अच्छा काम करता है।