दिलचस्प पोस्ट
एंड्रॉइड में एसिंक टास्क का सही उपयोग कैसे करें JavaFX LineChart पर आकार कैसे जोड़ें I एक SQL सर्वर VARCHAR / NVARCHAR स्ट्रिंग में एक लाइन ब्रेक कैसे सम्मिलित करें आवश्यकताओं को कैसे बताएं। Txt एक प्रत्यक्ष गिटब स्रोत ब्राउज़र में जावा बटन के साथ एक लिंक खोलें? ग्रिडलेआउट फिट आकार स्क्रीन आकार कैसे करें AJAX पोस्ट त्रुटि: असुरक्षित हेडर "कनेक्शन" सेट करने के लिए मना कर दिया एसएसई पूर्णांक प्रभाग? कैसे Android में BufferedImage लोड करने के लिए? Django के माध्यम से जावास्क्रिप्ट को पायथन डेटा पास करना कक्षा में परिभाषित मित्र फ़ंक्शन परिभाषित मैं गैर-क्लाइंट विंडो आकार को WPF में कैसे गणना करूं? शीर्ष-सर्वाधिक दृश्य को छोड़कर सभी दृश्यों में टच इनपुट को अक्षम कैसे करें? अंगुलियों 2 में * ngFor का उपयोग करके को पुनरावृति कैसे करें एम्बेडेड जेटटी में वैकल्पिक पथ से स्थिर फाइलों की सेवा

NSString का आकार कैसे प्राप्त करें

एक "जल्दी": मैं NSString के आकार (चौड़ाई) कैसे प्राप्त कर सकता हूँ?

मैं यह देखने की कोशिश कर रहा हूं कि स्ट्रिंग की स्ट्रिंग चौड़ाई यह देखने के लिए कि क्या यह स्क्रीन की दी गई चौड़ाई से बड़ा है, जिस मामले में मुझे इसे "फसल" करना है और इसे "…" के साथ जोड़ना है, सामान्य व्यवहार एक यूआईएलबल का AAAAAAAA और iiiiii के समान स्ट्रिंग स्ट्रिंग.लाइन तब से चाल नहीं करेगा, लेकिन अलग-अलग आकार (उदाहरण के लिए)।

मैं फँस गया हूं

बहुत बहुत धन्यवाद।

Solutions Collecting From Web of "NSString का आकार कैसे प्राप्त करें"

यह एक अलग दृष्टिकोण है पाठ का न्यूनतम आकार प्राप्त करें ताकि वह एक से अधिक पंक्ति में लपेट नहीं सके। अगर यह एक पंक्ति से ऊपर लपेटता है, तो आप ऊँचाई का उपयोग कर पा सकते हैं।

आप इस कोड का उपयोग कर सकते हैं:

CGSize maximumSize = CGSizeMake(300, 9999); NSString *myString = @"This is a long string which wraps"; UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:14]; CGSize myStringSize = [myString sizeWithFont:myFont constrainedToSize:maximumSize lineBreakMode:self.myLabel.lineBreakMode]; 

300 मार्जिन के लिए थोड़ी सी जगह के साथ स्क्रीन की चौड़ाई है। आप फ़ॉन्ट और आकार के लिए अपने स्वयं के मूल्यों को स्थानांतरित करना चाहिए, और रेखा के lineBreakMode अगर आप आईबी का प्रयोग नहीं कर रहे हैं तो

अब मेरी myStringSize में एक height होगी जिसमें आप कुछ की ऊंचाई के खिलाफ जांच कर सकते हैं जो केवल 1 लाइन की उच्च है (एक ही फ़ॉन्ट और आकार का उपयोग करके)। यदि यह बड़ा है, तो आपको पाठ काटने की आवश्यकता होगी। ध्यान दें कि आपको इसे फिर से जांचने से पहले स्ट्रिंग पर एक … जोड़ना चाहिए (जोड़ना … इसे फिर से सीमा पर धक्का दे सकता है)।

पाठ को काटने के लिए इस कोड को लूप में रखें, फिर सही ऊंचाई के लिए फिर से जांचें।

विधि के नीचे का उपयोग करें

उद्देश्य सी

 - (CGSize)findHeightForText:(NSString *)text havingWidth:(CGFloat)widthValue andFont:(UIFont *)font { CGSize size = CGSizeZero; if (text) { CGRect frame = [text boundingRectWithSize:CGSizeMake(widthValue, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{ NSFontAttributeName:font } context:nil]; size = CGSizeMake(frame.size.width, frame.size.height + 1); } return size; } 

स्विफ्ट 3.0

 func findHeight(forText text: String, havingWidth widthValue: CGFloat, andFont font: UIFont) -> CGSize { var size = CGSizeZero if text { var frame = text.boundingRect(withSize: CGSize(width: widthValue, height: CGFLOAT_MAX), options: .usesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil) size = CGSize(width: frame.size.width, height: frame.size.height + 1) } return size } 

आपको स्ट्रिंग को मापने के लिए कोर ग्राफिक्स का उपयोग करना होगा, जैसा कि आपके निर्दिष्ट फ़ॉन्ट और आकार में प्रदान किया गया है। एक walkthrough के लिए स्ट्रिंग की पिक्सेल चौड़ाई को मापने के लिए उत्तर देखें

 sizeWithFont:constrainedToSize:lineBreakMode 

अब नापसंद है कोड स्निपेट के नीचे का प्रयोग करें,

 UIFont *font=[UIFont fontWithName:@"Arial" size:16.f]; NSString *name = @"APPLE"; CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];