जैसा कि हम सभी iOS के लिए sizeWithAttributes का उपयोग नहीं कर सकते, 4.3 से अधिक के लिए हमें 7.0 और पिछले iOS के लिए सशर्त कोड लिखना होगा।
1) समाधान 1:
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
CGSize size = CGSizeMake(230,9999);
CGRect textRect = [specialityObj.name
boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont fontWithName:[AppHandlers zHandler].fontName size:14]}
context:nil];
total_height = total_height + textRect.size.height;
}
else {
CGSize maximumLabelSize = CGSizeMake(230,9999);
expectedLabelSize = [specialityObj.name sizeWithFont:[UIFont fontWithName:[AppHandlers zHandler].fontName size:14] constrainedToSize:maximumLabelSize lineBreakMode:UILineBreakModeWordWrap]; //iOS 6 and previous.
total_height = total_height + expectedLabelSize.height;
}
2) समाधान 2
UILabel *gettingSizeLabel = [[UILabel alloc] init];
gettingSizeLabel.font = [UIFont fontWithName:[AppHandlers zHandler].fontName size:16]; // Your Font-style whatever you want to use.
gettingSizeLabel.text = @"YOUR TEXT HERE";
gettingSizeLabel.numberOfLines = 0;
CGSize maximumLabelSize = CGSizeMake(310, 9999); // this width will be as per your requirement
CGSize expectedSize = [gettingSizeLabel sizeThatFits:maximumLabelSize];
पहला उपाय यह है कि ऊंचाई के उचित मूल्य को वापस करने में कुछ समय विफल है। इसलिए दूसरे उपाय का उपयोग करें। जो पूरी तरह से काम करेगा।
दूसरा विकल्प सशर्त कोड के बिना सभी आईओएस में काफी अच्छी तरह से और आसानी से काम कर रहा है।
-sizeWithAttributes:
।