2010-10-11 16 views
8

मेरे पास UILabel है, जिसमें डायनामिक टेक्स्ट होता है। कभी-कभी टेक्स्ट दिखाया जाने वाला बहुत लंबा होता है और इस प्रकार स्वचालित रूप से छोटा कर दिया जाता है। मैं छंटनी वाले पाठ के दृश्य भाग की चौड़ाई कैसे प्राप्त करूं?छिड़काव UILabel टेक्स्ट की चौड़ाई को कैसे ढूंढें

आकारटाटफिट असुरक्षित पाठ की लंबाई देता है, इसलिए इस समय मैं केवल तभी पता लगा सकता हूं जब छंटनी की जाएगी। यह जानने की जरूरत है कि उन तीन बिंदुओं सहित कितना दृश्यमान है। कोई सुझाव?

स्पष्टीकरण: जब पाठ काटा जाता है, तो यह आमतौर पर यूलाबेल चौड़ाई से छोटा होता है।

उत्तर

5

रोबोट के सही है।

अगर मैं तुम्हें था मैं तो निम्न कार्य करें चाहते हैं:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 24)]; 
    label.text = @"this is some really long text that i want in a small label"; 
    [view addSubview:label]; 

    CGSize size = [label.text sizeWithFont:label.font constrainedToSize:label.frame.size 
       lineBreakMode:label.lineBreakMode]; 

यह आपको एक मूल्य देना चाहिए कम से कम 200 (खाते में विवश अधिकतम आकार और काट-छांट विधि लेने)।

+0

रोबोट के मल्टीरो मामले के लिए सही है, लेकिन मेरी समस्या एकल पंक्ति थी। आप लाइन ब्रेकमोड का उल्लेख करने वाले थे, जो इसके अलावा एक सामान्य समाधान भी है। Thanx! – JOM

4

मुझे समझ में नहीं आ रहा है कि अगर टेक्स्ट को छोटा किया जा रहा है तो यूआईएलएबल की चौड़ाई अलग क्यों होगी। भले ही, आप किसी दिए गए फ़ॉन्ट के साथ स्ट्रिंग के आकार की गणना करने के लिए sizeWithFont:constrainedToSize: का उपयोग कर सकते हैं लेकिन "बाध्यकारी आकार" तक सीमित हो सकते हैं।

+1

क्योंकि कटा हुआ पाठ की चौड़ाई कम हो सकती है! नहीं पूछेंगे, अगर यह UILabel चौड़ाई के समान था। फ़ॉन्ट का आकार 15 पर तय किया गया है, लेकिन यह जांच करेगा कि आकार WithFont आकार के अलावा कुछ और देगा। – JOM

+1

यूलाबेल चौड़ाई 205, एकल पंक्ति। sizeThatFits 2 9 1 है, आकार WithFont: बाधित ToSize 163 है, आकार WithFont: बाधित: आकार: लाइन ब्रेकमोड 203 है, आकार WithFont: forWidth: lineBreakMode 203 है। "163" और "203" समाधानों के बीच अंतर को इंगित करने के लिए Thanx! – JOM

संबंधित मुद्दे