2011-06-14 20 views
5

मेरे पास एकाधिक लाइनों वाला एक लेबल है। मैं चाहता हूं कि लेबल पर टेक्स्ट हमेशा ऊंचाई के स्वतंत्र और लेबल की रेखाओं की संख्या से ऊपर बाएं कोने से शुरू होता है।एकाधिक लाइनों के साथ लेबल टेक्स्ट संरेखण

अभी मैं एक संपत्ति

[question1Label setContentMode: UIViewContentModeTopLeft]; 

उपयोग कर रहा हूँ लेकिन इसके काम नहीं कर रहा

धन्यवाद

उत्तर

6

मैंने देखा है कि contentModeकी संपत्ति UILabel अपने पाठ का कोई प्रभाव नहीं पड़ता संरेखण। टेक्स्ट एलाइनमेंट संपत्ति का उपयोग करें।

label.textAlignment = UITextAlignmentLeft; 

संपादित करें: यह पाठ बाएं केन्द्रीय संयोजित करेगा। टॉप-बाएं से टेक्स्ट दिखाने के लिए आपको sizeWithFont:एनएसएसटींग की विधि का उपयोग करके टेक्स्ट की ऊंचाई खोजने की आवश्यकता है। See this SO post यह जानने के लिए कि यह कैसे करें।

एक विकल्प के आप UITextField उपयोग कर सकते हैं, UIControl के उपवर्ग, जो विरासत में UIControl केcontentVerticalAlignment संपत्ति के रूप में।

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop; 

आप इस संपत्ति का उपयोग शीर्ष पर टेक्स्ट को संरेखित करने के लिए कर सकते हैं। आप उपयोगकर्ता को userInteractionEnabled संपत्ति का उपयोग करके टेक्स्ट को संपादित करने से अक्षम कर सकते हैं।

+1

मैं इस संपत्ति का उपयोग लेकिन यह केवल बाएं से पाठ संरेखित लेकिन मैं ऊपर से अपने पाठ शुरू करना चाहते हैं। – Rachit

+0

@ रचित तनेजा, मेरा अद्यतन उत्तर देखें – EmptyStack

0

स्वीकृत उत्तर अब मेरे लिए काम नहीं करता है क्योंकि UITextAlignmentLeft को कम किया गया है।

निम्नलिखित काम करता है!

// Allow multiline label centered 
[label setNumberOfLines:0]; 
[label setTextAlignment:NSTextAlignmentCenter]; 
संबंधित मुद्दे