में पदावनत sizeWithFont:constrainedToSize:lineBreakMode:
विधि iOS7 में पदावनत किया गया है, कैसे मैं अपने आप को गतिशील पाठ फिट करने के लिए अपनी ऊंचाई और चौड़ाई समायोजित करने के लिए एक UILabel
आकार बदल सकते हैं?आकार UILabel lineBreakMode: iOS7
उत्तर
मैं इसका उपयोग समाप्त कर दिया। मेरे लिये कार्य करता है। यह IBOutlets ऑब्जेक्ट के साथ काम नहीं करता है, लेकिन जब आप Uitableview की ऊंचाई पर टेक्स्ट की गतिशीलता की गणना करते समय उपयोगी होते हैं ForRowAtIndexPath: विधि।
NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"FontName" size:15], NSFontAttributeName,
nil];
CGRect frame = [label.text boundingRectWithSize:CGSizeMake(263, 2000.0)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attributesDictionary
context:nil];
CGSize size = frame.size;
यह आईबीओलेट यूलाबेल – Tim
के साथ बिल्कुल काम नहीं कर रहा है यह ऑटो-लेआउट के साथ "जैसा है" काम नहीं करेगा। यहां मेरा समाधान देखें: http://stackoverflow.com/a/18933978/557054 –
यह iOS6 और iOS7 में काम करना चाहिए, लेकिन अपने लेबल की कमी टूट जाएगा (आप उन सभी को वापस प्रोग्राम के यदि आवश्यक हो तो निर्धारित करने की आवश्यकता):
-(void)resizeHeightForLabel: (UILabel*)label {
label.numberOfLines = 0;
UIView *superview = label.superview;
[label removeFromSuperview];
[label removeConstraints:label.constraints];
CGRect labelFrame = label.frame;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
CGRect expectedFrame = [label.text boundingRectWithSize:CGSizeMake(label.frame.size.width, 9999)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:[NSDictionary dictionaryWithObjectsAndKeys:
label.font, NSFontAttributeName,
nil]
context:nil];
labelFrame.size = expectedFrame.size;
labelFrame.size.height = ceil(labelFrame.size.height); //iOS7 is not rounding up to the nearest whole number
} else {
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
labelFrame.size = [label.text sizeWithFont:label.font
constrainedToSize:CGSizeMake(label.frame.size.width, 9999)
lineBreakMode:label.lineBreakMode];
#pragma GCC diagnostic warning "-Wdeprecated-declarations"
}
label.frame = labelFrame;
[superview addSubview:label];
}
अपने ViewController के लिए इस विधि जोड़ें और इसका इस्तेमाल करते हैं इस तरह:
[self resizeHeightForLabel:myLabel];
//set new constraints here if needed
यह एक जीवन बचतकर्ता है! इस समय के साथ गड़बड़ करने में मैंने कितना समय बिताया है, इस तरह की सरल समस्या जैसे मैं हल करने की कोशिश कर रहा हूं। –
मैं इसका उपयोग कर रहा हूं, और यह लेबल को अच्छी तरह से आकार देता है, लेकिन जब लेबल पर्यवेक्षण में फिर से जोड़ा जाता है तो स्थिति गलत होती है, भले ही मैं यह सत्यापित कर सकूं कि मूल अभी भी फ्रेम –
@PeteMartin पर सही ढंग से सेट है निश्चित रूप से पर्यवेक्षकों में से एक UITableViewCell या अन्य कैश किए गए UI तत्व नहीं है? उस मामले में कुछ कामकाज की जरूरत है। –
- 1. आकार के लिए प्रतिस्थापन WithFont: ForWidth: lineBreakMode:
- 2. आईफोन UILabel आकार WithFont:
- 3. IOS7
- 4. मैं UILabel संकीर्ण फ़ॉन्ट आकार
- 5. UILabel आकार ToFit और बाधाएं
- 6. UILabel के आकार के अनुसार
- 7. UILabel आकार को कम करना
- 8. iOS7
- 9. ios7
- 10. UILabel
- 11. UILabel -
- 12. UILabel
- 13. UILabel
- 14. UILabel न्यूनतम फ़ॉन्ट आकार छाया समस्या
- 15. कैसे डिफ़ॉल्ट UILabel फ़ॉन्ट और आकार स्विफ्ट
- 16. अपने फ्रेम आकार के अनुसार UILabel फ़ॉन्ट आकार सेट करें?
- 17. UILabel
- 18. मैं कैसे प्राप्त करूं - [एनएसएसटींग आकार WithFont: forWidth: lineBreakMode:] काम करने के लिए?
- 19. कैसे iOS7
- 20. iOS7 स्टोरीबोर्ड
- 21. NSMergeConflict iOS7
- 22. UILabel
- 23. UILabel
- 24. UILabel
- 25. uilabel
- 26. UIlabel
- 27. UILabel
- 28. UILabel
- 29. UILabel
- 30. UILabel
निश्चित रूप से यह पता लगाने में रुचि रखते हैं। मैंने इसके बजाय बाउंडिंगरेक्ट का उपयोग करने की कोशिश की, लेकिन आप उपरोक्त के साथ की तरह बाधाओं को दर्ज नहीं कर सकते हैं। – Tim
बाउंडिंग के साथ क्या गलत है RectWithSize: विकल्प: विशेषताएं: संदर्भ? – peko
मुझे इसका दुरुपयोग करना होगा, मैं इसे एक और जाना दूंगा! – Tim