2016-04-27 2 views
0

Мой кодКак исправить «sizeWithFont: constrainedToSize: lineBreakMode:» осуждается: предупреждение

CGSize textSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(self.bounds.size.width - 106, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping]; 

Каждый знает, как я могу исправить это предупреждение?

+2

может быть это работает 'NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle Alloc] инициализации]; paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; CGRect TextRect = [strText boundingRectWithSize: размер опции: NSStringDrawingUsesLineFragmentOrigin атрибуты: @ {NSFontAttributeName: шрифт, NSParagraphStyleAttributeName: paragraphStyle.copy} контекст: ноль]; ' –

+0

следовать этой ссылке http://stackoverflow.com/questions/18897896/replacement-for-deprecated-sizewithfont-in-ios-7 –

+0

Я не знаком с объективом-c, у меня есть это предупреждение в библиотеке, которую я использую в быстром проекте. Попытка исправить –

ответ

7

Swift

// adjust the label height (top align text) 
// old 
var labelSize: CGSize = model.name.sizeWithFont(self.nameLabel.font, constrainedToSize: maxNameLabelSize, lineBreakMode: self.nameLabel.lineBreakMode) 
// new 
var labelSize: CGSize = model.name.boundingRectWithSize(maxNameLabelSize, options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: self.nameLabel.font], context: nil).size 

Objective C

// adjust the label height (top align text) 
// old 
CGSize labelSize = [model.name sizeWithFont:self.nameLabel.font 
         constrainedToSize:_maxNameLabelSize 
          lineBreakMode:self.nameLabel.lineBreakMode]; 
// new 
CGSize labelSize = [model.name boundingRectWithSize:_maxNameLabelSize 
             options:NSStringDrawingUsesLineFragmentOrigin 
            attributes:@{NSFontAttributeName: self.nameLabel.font} 
             context:nil].size; 
+0

Ничего общего с linebreakmode.Use lineBreakMode: NSLineBreakByWordWrapping как есть –

1

Попробуйте ниже код:

NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:@"This is long text..!!!" attributes:@{NSFontAttributeName: self.lbl.font 
}]; 
CGRect rect = [attributedText boundingRectWithSize:(CGSize){self.lbl.frame.size.width, CGFLOAT_MAX} 
              options:NSStringDrawingUsesLineFragmentOrigin 
              context:nil]; 

NSLog(@"Height %f",rect.size.height); 
NSLog(@"Width %f",rect.size.width); 
0

Используйте это:

CGRect textRect = [text boundingRectWithSize:CGSizeMake(self.bounds.size.width - 106, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin 
           attributes:@{NSFontAttributeName:[[UIFont fontWithName:@"YOUR_FONT_NAME" size:12.0f]]} 
           context:nil]; 

CGSize size = textRect.size; 
Смежные вопросы