Intereting Posts
UITableView आंशिक रूप से UITabBar द्वारा छिपा हुआ कोर डेटा को JSON API के साथ समन्वयित करने का सबसे कारगर तरीका क्या है : अपरिचित चयनकर्ता को उदाहरण के लिए भेजा गया 0x6d21350 मेरे UIViews मस्क अप जब मैं UIPanGestureRecognizer और autolayout गठबंधन आईफोन ऐप पर दीवार पर फेसबुक एसडीके पोस्ट कस्टम UIBarButtonItem छवि और लेबल के साथ कैसे करें? स्पीड अप बचत छवि – आईओएस आईओएस पार्स फेसबुक दोस्तों के नाम और स्कोर पाएं IOS में NSNotificationCenter पर कथन मैं अपने iPhone डिवाइस का फोन नंबर कैसे प्राप्त करूं? नेविगेशन बार की पृष्ठभूमि छवि को डिफ़ॉल्ट पर वापस लाएं कस्टम कीबोर्ड पर कीबोर्ड क्लिक ध्वनि कैसे खेलें? गैर-पावर-टू-दो छवियों पर 2 डी सिग्नल प्रोसेसिंग के लिए IOS त्वरण फ्रेमवर्क का उपयोग करना? Doubletaptogo उत्तरदायी मेनू फोन पर काम नहीं कर रहा है Google मानचित्र पर मार्कर के लिए कस्टम जानकारी विंडो लोड करते समय IOS ऐप फ़्रीज़ होता है

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 में एक सेल को हटाने के बाद सेल लेआउट ताज़ा करें"

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