विफल रहता है I UITEableViewCells के लिए ऑटो-लेआउट का उपयोग करना चाहता हूं। इन तालिका कक्षों में गतिशील ऊंचाई होती है (पाठ की लंबाई के आधार पर)।एक UITableViewCell पर 'UIView -systemLayoutSizeFittingSize:]' को कॉल करना हमेशा
मैं [UIView -systemLayoutSizeFittingSize:]
उपयोग कर रहा हूँ ([UITableView -heightForRowAtIndexPath:]
में वापस जाने के लिए) उचित सेल ऊंचाई की गणना करने के, लेकिन मैं निम्नलिखित परिणाम प्राप्त हो रही है:
अगर मैं
UILayoutFittingCompressedSize
गुजरती हैं, मैं वापस की एक CGSize (0 मिलता है, 0)।अगर मैं
UILayoutFittingExpandedSize
गुजरती हैं, इस त्रुटि के साथ मेरी ऐप्लिकेशन क्रैश:*** Assertion failure in -[NSISLinearExpression incrementConstant:], /SourceCache/Foundation_Sim/Foundation-1043.1/Layout.subproj/IncrementalSimplex/NSISLinearExpression.m:620
(मेरा अनुमान है इसका मतलब है कि कुछ संख्या अनंत है।)
मेरे कार्यान्वयन सरल है। मैं प्रत्येक वस्तु के लिए ऊंचाई की गणना, और फिर इसे कैश:
MessageCell *cell = // allocate a new cell...
// set up the cell (assign text, images, etc)
CGSize size = [cell systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
self.cellHeight = size.height; // size always equals (0, 0)
मैं परिकल्पना है कि इस कमी मैं सेट के साथ एक समस्या है, लेकिन:
- अगर मैं मैन्युअल रूप से एक बड़े मूल्य के लिए
cellHeight
सेट , कोशिकाओं को छोड़कर सभी ठीक ठीक दिखते हैं। - इंटरफ़ेस बिल्डर मुझे संदिग्ध संयम के बारे में कोई चेतावनी नहीं देता
[cell hasAmbiguousLayout]
NO
देता है।- मेरा सेल, अन्य चीजों के साथ, 48x48 पर एक छवि सेट है, इसलिए (0, 0) का आकार सभी बाधाओं को पूरा नहीं करना चाहिए।
कोई विचार?
मैं अपने रूप में एक ही बग मिलते हैं, आप इसे ठीक है? – ygweric