का उपयोग कर तालिका दृश्य कक्ष के भीतर सभी कक्षों को फिट करने के लिए संग्रह दृश्य ऊंचाई अपडेट करें। मैं UITableViewCell
के भीतर UICollectionView
को गतिशील का लाभ उठाना चाहता हूं। मैं यह सुनिश्चित करना चाहता हूं कि संग्रह दृश्य में सभी कक्ष स्क्रीन पर दिखाई दे रहे हैं, इसलिए संग्रह कक्ष फिट करने के लिए तालिका कक्ष ऊंचाई में बढ़ना चाहिए। मैं लगभग यह काम कर रहा हूँ। मैं टेबल टेबल को सही आकार के रूप में प्राप्त करने में सक्षम नहीं हूं - यह ऊंचाई में बहुत लंबा या बहुत छोटा है, और कुछ लेआउट समस्या तब तक दिखाई दे रही हैं जब तक कि मैं तालिका से बातचीत नहीं करता (नीचे उस पर अधिक)।स्वत: लेआउट
मैंने तालिका के सेल के contentView
पर संग्रह दृश्य के लिए ऑटो लेआउट बाधाएं सेट की हैं: अग्रणी, पीछे, ऊपर और नीचे। इसके बाद मैंने संग्रह दृश्य पर ऊंचाई बाधा उत्पन्न की ताकि मैं संग्रह दृश्य में सभी कक्षों को फिट करने के लिए उचित ऊंचाई की गणना करने के बाद फ्लाई पर constant
अपडेट कर सकूं (क्योंकि मुझे नहीं लगता कि स्वचालित रूप से ऐसा करने का कोई तरीका है)।
यहां बाकी सेटअप है।
viewDidLoad {
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 44
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
let cellDimension = self.collectionView.frame.size.width/7 //always 7 columns
let flowLayout = self.collectionView.collectionViewLayout as! UICollectionViewFlowLayout
flowLayout.itemSize = CGSizeMake(cellDimension, cellDimension)
self.collectionViewHeightConstraint.constant = cellDimension * 4 //always 4 rows
}
मैं heightForRowAtIndexPath
लागू नहीं किया है।
यह सेटअप विरोधाभासी लंबवत बाधाओं में परिणाम देता है। मैंने बाधाओं की प्राथमिकता को कम करने और संयोजनों के समूह में संबंध बदलने की कोशिश की है, लेकिन कोई भी वांछित व्यवहार में नहीं हुआ। यदि मैं 999 तक ऊंचाई की बाधा की प्राथमिकता को कम करता हूं, तो टेबल व्यू सेल पहले बहुत लंबा होता है, लेकिन तालिका के ऊपर और नीचे स्क्रॉल करने के बाद तालिका की ऊंचाई ऊंचाई की अपेक्षा की जाती है। कुछ अन्य संयोजनों के साथ, परिणाम या तो तालिका कक्ष बहुत छोटा है, फिर भी पूर्ण संग्रह दृश्य खून बह रहा है, तालिका कक्ष बहुत छोटा है और संग्रह दृश्य काट दिया गया है, या तालिका कक्ष बहुत लंबा है, जो प्राथमिकता के आधार पर है और संबंध मैंने बाधाओं पर लागू किया है। इसके अतिरिक्त, संग्रह दृश्य कक्ष उचित आकार पर प्रदर्शित नहीं होते हैं जबकि दृश्य एनिमेटिंग होता है (लेकिन वे एनीमेशन खत्म होने के समय ठीक से समायोजित होते हैं), या यदि मैं तालिका को फिर से लोड करता हूं तो संग्रह दृश्य कक्ष गलत आकार के होते हैं जब तक मैं स्क्रॉल नहीं करता टेबल।
गतिशील तालिका दृश्य सेल ऊंचाई प्राप्त करने के लिए मैं इन उपस्थिति समस्याओं को कैसे हल कर सकता हूं जिसमें डिस्प्ले की चौड़ाई के आधार पर गतिशील सेल आकार वाली एक पूरी तरह से दृश्य संग्रह दृश्य शामिल है?
मैं पंक्ति को स्थानांतरित करने का सुझाव दूंगा "guarant.tidView.rowHeight =" ViewDidLoad से ViewWillAppear के बजाय, आप यह प्रश्न भी देखना चाहेंगे। [लिंक] (http://stackoverflow.com/questions/29263875/uitableviewcells-initial-load-view-display-issue) –
@ केविन हॉर्गन ने कोई ध्यान देने योग्य अंतर नहीं बनाया। – Joey
UITableViewCell में ऑटोलायआउट सही तरीके से काम करने के लिए आपको कंटेनर व्यू में सभी लेआउट के लिए बाधाओं को जोड़ने के बिना बाधाओं को जोड़ने की आवश्यकता है। अन्यथा ऑटोलायआउट ठीक से काम नहीं करेगा। निम्न लिंक जांचें जो tableviewcell http: // stackoverflow के लिए autolayout सेटअप की कुछ विस्तृत जानकारी देता है .com/प्रश्न/2 9 2313 9 0/यूटेबलव्यू-अजीब-लेआउट-व्यवहार-परिवर्तन-ऑन-स्क्रॉल/2 9 327082 # 2 9 327082 – Ram