ios - Why is systemLayoutSizeFittingSize returning (0, 0) for UITableViewCell? -


यहां कोड स्निपेट है

  self.xyzIcon = [UIImage mobileImageNamed: @ "icon_xyz "]; Self.xyzIconImageView = [UIImageView नया]; [Self.contentView addSubview: self.xyzIconImageView]; [सेल्फ। एक्सआईजआईआईएमएजएव्यू मस_मैकेकेंस्टेनिटेंस: ^ (एमएएससीन्स्टेंटमेकर * मेक) {मेक। बाएं.एक्सालटो (कमजोरसल्फ़ कंटेंटव्यू.मास_बाएं); make.width.equalTo (@ (weakSelf.xyzIcon.size.width)); make.height.equalTo (@ (weakSelf.xyzIcon.size.height)); }];  

दृश्य नियंत्रक में, जो तालिकादृश्य का उपयोग करता है

  - (CGFloat) तालिका दृश्य: (UITableView *) तालिका दृश्य ऊंचाई ForRowAtIndexPath: (NSIndexPath *) indexPath {if ( ! Self.prototypeCell) {self.prototypeCell = [UITableViewCell new]; } [स्वयं। प्रोटोपीपेल कॉन्फ़िगर करें]; CGFloat ऊँचाई = अनुमानित = [स्व। प्रोटोपीटक्ल। कॉन्टैंटदृश्य सिस्टम लेआउटआकारफ़ाईिंगआकार: UILayoutFittingCompressedSize]। हाइट + 1.f; एनएसएलॉग (@ "ऊँचाई गणना% एफ", ऊँचाई गणना); ऊँचाई वापस लौटाता है; }  

यह हमेशा 1.f. देता है। कृपया मदद करें और मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं।

समस्या यह है कि आपकी बाधाएं हैं सेल की ऊंचाई का निर्धारण नहीं करता है आपने छवि दृश्य के ऊपर या छवि दृश्य के नीचे अपने पर्यवेक्षण ( contentView ) को पिन नहीं किया है। तो सेल में इसे किसी भी तरह से आंतरिक रूप से शून्य करने से रोकने के लिए कुछ भी नहीं है, जैसा कि यह था, जब आप systemLayoutSizeFittingSize पर कॉल करते हैं।

इसे किसी अन्य तरीके से रखने के लिए: जिस तरह से सिस्टम लेआउटसिझ फिटिंग साइज़ काम कुछ आंतरिक बाधाओं को स्ट्रट्स के रूप में इलाज करके है जो इसे न्यूनतम (या अधिकतम) आकार देता है आपके पास कोई स्ट्रट नहीं है।


Comments