इस निम्न कोड के साथ, आप अपने UITextView एक निश्चित चौड़ाई के आधार पर की ऊंचाई बदल सकते हैं (यह iOS 7 और पिछले संस्करण पर काम कर रहा है): इस समारोह के साथ
- (CGFloat)textViewHeightForAttributedText:(NSAttributedString *)text andWidth:(CGFloat)width
{
UITextView *textView = [[UITextView alloc] init];
[textView setAttributedText:text];
CGSize size = [textView sizeThatFits:CGSizeMake(width, FLT_MAX)];
return size.height;
}
, आप एक NSAttributedString ले जाएगा और आवश्यक ऊंचाई को वापस करने के लिए एक निश्चित चौड़ाई।
आप एक विशिष्ट फ़ॉन्ट के साथ आप एक पाठ से फ्रेम गणना करना चाहते हैं, तो निम्न कोड का उपयोग करने की जरूरत है:
- (CGSize)text:(NSString *)text sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
{
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
CGRect frame = [text boundingRectWithSize:size
options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName:font}
context:nil];
return frame.size;
}
else
{
return [text sizeWithFont:font constrainedToSize:size];
}
}
आप जोड़ सकते हैं कि SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO
अपनी परियोजना में अपने prefix.pch फ़ाइल पर के रूप में:
:
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
तुम भी द्वारा पिछले परीक्षण SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)
जगह ले सकता है
if ([text respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)])
स्रोत
2013-09-28 13:25:07
साथ tableView सेल मैं केवल यह कर सकते हैं 24 घंटे के बाद आपको यह दे दो। धैर्य रखें, यह तुम्हारा है :) –
शायद आपको उन उत्तरों से लिंक करना चाहिए जिन्हें आपने उन्हें लिया था? http://stackoverflow.com/questions/18368567/uitableviewcell-with-uitextview-height-in-ios-7 – Anderscc
@ जोर्डन मॉन्टेल, एक और प्रश्न के लिए, यदि मैंने चौड़ाई और ऊंचाई तय की है, तो मैं सबसे अच्छा फ़ॉन्ट आकार कैसे प्राप्त कर सकता हूं एक निर्दिष्ट स्ट्रिंग के लिए? मेरे पास आईओएस 7 पर समान समस्या है (आईओएस 6 पर, मैं यह कर सकता हूं) – Jacky