4.3'ten büyük tüm iOS'lar için sizeWithAttributes kullanamadığımızdan, 7.0 ve önceki iOS için koşullu kod yazmamız gerekiyor.
1) Çözüm 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];
total_height = total_height + expectedLabelSize.height;
}
2) Çözüm 2
UILabel *gettingSizeLabel = [[UILabel alloc] init];
gettingSizeLabel.font = [UIFont fontWithName:[AppHandlers zHandler].fontName size:16];
gettingSizeLabel.text = @"YOUR TEXT HERE";
gettingSizeLabel.numberOfLines = 0;
CGSize maximumLabelSize = CGSizeMake(310, 9999);
CGSize expectedSize = [gettingSizeLabel sizeThatFits:maximumLabelSize];
İlk çözüm bazen uygun yükseklik değerini döndürmede başarısız olmaktır. bu yüzden başka bir çözüm kullanın. mükemmel çalışacak.
İkinci seçenek oldukça iyi ve koşullu kod olmadan tüm iOS'ta sorunsuz çalışıyor.
-sizeWithAttributes:
.