दिलचस्प पोस्ट
SQL सर्वर में लॉगिन के रूप में सक्रिय निर्देशिका उपयोगकर्ता समूह कैसे जोड़ें PHP में दो स्ट्रिंग के बीच एक सबस्ट्रिंग कैसे प्राप्त करें? छद्म-शास्त्रीय विरासत गोपनीयता के साथ? IIS में पुन: उपयोग करने के लिए अनुप्रयोग पूल का क्या कारण है? पायथन में प्रमुख संख्याओं के एक कुशल असीम जनरेटर कैसे कार्यान्वित करें? मैं एक टेक्स्ट बॉक्स कैसे बनाऊं, जो केवल संख्या स्वीकार करता है? Node.js में SQL इंजेक्शन की रोकथाम मेरा ऐप अनइंस्टॉल किया गया है इससे पहले कि एक गतिविधि को कैसे दिखाएं (एंड्रॉइड) "INGER INGER" बनाम "INSERT … डुप्लिकेट कुंजी अद्यतन पर" .htaccess रीडायरेक्ट को रीडायरेक्ट रूट यूआरएल को उपनिर्देशिका में डालें RelativeLayout wrap_content के लिए पूर्ण स्क्रीन ले रहा है JQuery के साथ चयनित तत्व पर क्लिक करें अनुकरण UIScrollView स्क्रॉल नहीं करें सप्ताह में समूह द्वारा MySQL में कैसे? उदाहरण के बारे में "व्यवहार में जावा संगतता" के बारे में सवाल

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

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

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

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

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

वेब के समाधान से एकत्रित समाधान "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}];