2013-01-21 11 views
8

के साथ काम नहीं करने के लिए चौड़ाई मैं कुछ कोड है:गतिशील रूप से बदलने के UILabel autolayout

CGRect currentFrame = textLabel.frame; 
CGSize max = CGSizeMake(textLabel.frame.size.width, 3000); 
CGSize expected = [[textLabel text] sizeWithFont:textLabel.font constrainedToSize:max lineBreakMode:textLabel.lineBreakMode]; 
currentFrame.size.height = expected.height; 
textLabel.frame = currentFrame; 

expected.height = expected.height + 70; 

[scrollView setContentSize:expected]; 

पाठलेबल UIScrollView के अंदर रखा बहु पाठ जानकारी प्रदर्शित करने के।

आवेदन के पुराने संस्करण में, 4-इंच स्क्रीन समर्थन के बिना, सब कुछ सही था। लेकिन दुर्भाग्य से, UILabel का आकार बदलना काम नहीं करता है।

शायद, कोई मेरी सलाह दे सकता है, मुझे क्या बदलना चाहिए?

धन्यवाद।

+1

आप इसके बजाय 'UITextField' नियंत्रण का उपयोग क्यों नहीं करते? – holex

उत्तर

27

ऑटोलायआउट का उपयोग करते समय आपको फ्रेम प्रॉपर्टी अपडेट नहीं करना चाहिए, इसके बजाय दृश्य पर बाधाओं को संशोधित करना चाहिए।

दूसरी ओर, आप ऑटोलाउट को आपके लिए भी काम करने दे सकते हैं। सुनिश्चित करें कि numberOfLines लेबल की संपत्ति 0 पर सेट है और ऊंचाई बाधा Greater Than or Equal (> =) प्रकार है। लेबल पर नया टेक्स्ट सेट करने के बाद लेआउट स्वचालित रूप से अपडेट हो जाएगा।

+0

बहुत उपयोगी! धन्यवाद! –

+4

'ग्रेटर थान या इक्वाल' बहुत उपयोगी !!! – Vincent

+0

यह काम कर रहा है। यह मेरे कोड के लिए उपयोगी है। –

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