मेरे पास UITableView
(समूहित!) है और कोशिकाओं की दो शैलियों की ऊंचाई की गणना करने की आवश्यकता है: UITableViewCellStyleDefault
और UITableViewCellStyleValue2
।heightForRowAtIndexPath लंबे NSStrings
यह मैं कैसे UITableViewCellStyleDefault
के लिए यह करना है:
CGSize textSize = {300.f, 200000.0f};
CGSize size = [myTextString1 sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
size.height += 30.0f;
result = MAX(size.height, 44.0f);
और UITableViewCellStyleValue2
के लिए:
CGSize textSize = {207.f, 200000.0f};
CGSize size = [myTextString2 sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
size.height += 30.0f;
result = MAX(size.height, 44.0f);
मेरे यह मुद्दा यह है कि वे गलत ऊंचाइयों लौट सकते हैं और मुझे लगता है कि यह textSize
जहां है मैं गलत संख्या का उपयोग करता हूं। लंबे ग्रंथों के साथ, नीचे का हिस्सा छोटा हो जाता है (आमतौर पर केवल कुछ शब्दों के साथ एक रेखा), और सेलस्टाइल दोनों के लिए उनके पास सेल में पाठ के ऊपर और नीचे अजीब अंतर होता है।
UITableViewCellStyleValue2
के लिए मुझे टेक्स्ट बनाने से चौड़ाई आकार (207.0f
) मिला। लाल रंग लाल रंग और फिर बस बॉक्स के आकार की गणना करना। 300.0f
UITableViewCellStyleDefault
के लिए चौड़ाई यह है कि सेल के साथ कितना बड़ा है।
क्या किसी को पता है कि मुझे NSString
के आकार की उचित गणना करने के लिए किस मूल्य का उपयोग करने की आवश्यकता है और इस प्रकार मेरी कोशिकाओं के लिए उचित ऊंचाई प्राप्त होती है?
धन्यवाद
धन्यवाद। मैं एक ही लाइन के साथ अकेले कुछ कर समाप्त हो गया। मुझे पता चला कि मुझे वैल्यू 2 कोशिकाओं के साथ समस्याएं थीं, क्योंकि मुझे लगता है कि वे फ़ॉन्ट आकार 14 थे, जबकि वे वास्तव में 15. अपने कोड के लिए, आप जोड़ना चाहेंगे: परिणाम = MAX (labelsize.height + 15 , 44.0 एफ); बस अगर सेल खाली या कम है तो 2 लाइनें इसे 44.0f की न्यूनतम पंक्ति ऊंचाई के साथ वापस कर देगी, जो सामान्य है। यदि केवल एक पंक्ति है तो यह 44.0f से छोटी हो जाएगी। – runmad