इंटरफ़ेस बिल्डर में iOS मल्टीलाइन लेबल


131

मैं UILabeliOS के लिए इंटरफ़ेस बिल्डर में एक बहुस्तरीय कैसे बना सकता हूं ? मैंने कोशिश की, UITextViewलेकिन यह मेरी आवश्यकताओं के अनुरूप नहीं था।

मैं लेबल में मल्टीलाइन (पाठ) कैसे जोड़ सकता हूं?


क्या आप समझा सकते हैं कि आईडी ने आपकी आवश्यकताओं के अनुरूप क्यों नहीं किया? केवल-पढ़ने के लिए पाठ दृश्य मल्टीलाइन लेबल के समान है।
श्रेयश जूल 2'11

पाठ रंग गुण हाइलाइट किया गया प्रतीत नहीं होता है।
समुली लेहटन

7
इस प्रश्न पर जाने वाले अन्य लोगों के लिए, 5 या लाइनों को स्थापित करने के स्वीकृत उत्तर का पालन न करें n। इसके बजाय इसे 0 पर सेट करें (अनंत की तरह)। नीचे vijay का उत्तर जांचें।
GoodSp33d

जवाबों:


178

आप ऐसी numberOfLinesसंपत्ति का उपयोग कर सकते हैं जो एक लेबल की अधिकतम पंक्तियों को परिभाषित कर सकती है। डिफ़ॉल्ट रूप से, यह है 1। करने के लिए यह निर्धारित करना 0साधन लेबल होगा असीमित लाइनों

आप इसे कोड में कर सकते हैं:

textLabel.numberOfLines = 5 // for example

या इंटरफ़ेस बिल्डर में:


मैंने कोशिश की, यह तब काम करता है जब मैं लेबल लिख रहा होता हूं, लेकिन जब मैं इसे स्वीकार करने के लिए एंटर दबाता हूं तो यह सब एक लाइन पर चला जाता है।
समुली लेहटन

3
और widthआपके लेबल का क्या है?
अकाशिविस्की जूल

8
ठीक है, मैंने इसे अब प्राप्त किया, ऊंचाई बढ़ाई, जिसने इसे बनाया। धन्यवाद!
सामुली लेहटन

आप असीमित लाइनों के लिए लाइन्स को 0 पर सेट कर सकते हैं।
२०:५०

2
यह उत्तर भी देखें जिसमें बताया गया है कि IB में मल्टी-लाइन लेबल कैसे टाइप करें: stackoverflow.com/a/992511/893113
paulmelnikow

117

हिट Control+ Enterइंटरफ़ेस बिल्डर / स्टोरीबोर्ड में UILabel में एक लाइन जोड़ने के लिए।


2
धन्यवाद, यही मैं करने की कोशिश कर रहा था :)
mcont

इसका समाधान होना चाहिए!
सनीसोनिक

14
अच्छा है। लेकिन "क्यू" आवश्यक नहीं है मुझे लगता है
रेंडेल

1
@ ओलिवर तर्क यह Xcode नहीं छोड़ता है ... आपने सही नहीं पढ़ा है। उन्होंने कहा कि कंट्रोल + क्यू + एंटर (और सीएमडी + क्यू नहीं) .. लेकिन रेंडेल सही है केवल कंट्रोल + एनआर यहां पर्याप्त है।
गस्कब्र

1
@ लॉजिक यह Xcode नहीं छोड़ता है ... आपने सही नहीं पढ़ा है। उन्होंने कहा कि कंट्रोल + क्यू + एंटर (और सीएमडी + क्यू नहीं) .. लेकिन रेंडेल सही है केवल कंट्रोल + एनआर यहां पर्याप्त है।
गजक

47

धन्यवाद AppleVijay!

इसके अलावा sizeToFit को कॉल करने के लिए, इस तरह:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

ऊंचाई स्वचालित रूप से गणना की जाएगी।


11
नोट: UILineBreakModeWordWrap को iOS6 के रूप में चित्रित किया गया है। [लेबल setLineBreakMode: NSLineBreakWordWrapping] का उपयोग करें; बजाय।
जॉन फिएगन्स

5
गुम "बाय"। label.lineBreakMode = NSLineBreakByWordWrapping
उपयोगकर्ता 1872384

1
NSLineBreakMode.ByWordWrapping के बजाय UILineBreakModeWordWrap का उपयोग तेज के लिए करें
Deb

12

यू की जरूरत के अनुसार लेबल की चौड़ाई सेट करें फिर वर्ड रैप के लिए लाइन ब्रेक सेट करने के लिए आईबी का उपयोग करें

या इस तरह कोड के साथ उपयोग करें

मुझे एक उपाय मिला।

एक को निम्नलिखित कोड जोड़ना होगा:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

5

डायनामिक टेक्स्ट जानकारी के लिए लाइनों की संख्या शून्य सेट करें, यह तब उपयोगी होगा जब आपका टेक्स्ट अलग-अलग हो।

प्रोग्रामिक रूप से (स्विफ्ट 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame

Inetrface बिल्डर का उपयोग करना

यहाँ छवि विवरण दर्ज करें

नोट: यह आवश्यक नहीं है कि Minimum Font Scaleलेबल फ्रेम में टेक्स्ट को फिट करने के लिए न्यूनतम स्केल फैक्टर हो।


2

लाइनों में संख्या 0 के रूप में प्लेन यूआईबेल्स सेट लाइनों के क्षेत्र के साथ आईबी में दिखाई देती है। यह लेबल को दिए गए स्थान के अनुसार कई लाइनें बनाएगा।


1

IOS7 (Xcode5) में आपने 0स्टोरीबोर्ड में असीमित मल्टीपल इनपुट के लिए यूआईबेल की लाइनों को सेट किया ।
सबसे महत्वपूर्ण यह है कि height of the UILabelआप जिस इनपुट को सेट करने जा रहे हैं, उसकी लाइनें पकड़ सकते हैं।


0
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};

0

यदि आप संख्या 0 गुणांक को 0 के बराबर सेट करते हैं, तो लेबल स्वचालित रूप से दिए गए पाठ की आवश्यक संख्या को समायोजित कर देगा।


0

मैं लंबे समय से इससे जूझ रहा था। मैं बस चाहता था कि मेरा लेबल पाठ दूसरी पंक्ति में आए। लेकिन मैं जो कुछ भी करता हूं, वह सिर्फ उइबेल बॉक्स को ओवरफ्लो करेगा। मेरे लिए, आकार निरीक्षक में ऑटोरेस्‍ट्रिंग को बदलने का काम किया। सरल तय।

हो सकता है कि कोई ऐसा व्यक्ति मददगार हो जो कुछ इसी तरह की तलाश में हो।


-2

एक्स-कोड 7.2 के लिए

  1. - उलेबेल का चयन करें

  2. - सहायक निरीक्षक

  3. - पाठ - चयनित गुण

इसके बाद आप कुछ और विशेषता देख सकते हैं जिन्हें आप लेबल में जोड़ सकते हैं, जिसमें आप लाइन्स की संख्या भी जान सकते हैं । जो आपके लेबल को बहुस्तरीय बनाते हैं ।

एक बहु उइलबेल के लिए एक्स-कोड छवि


लाइनों की संख्या आईबी में प्लेन यूआईबेल्स के साथ दिखाई देती है।
ग्राहम ली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.