Ios 查找UILabel中最宽文本行的宽度

Ios 查找UILabel中最宽文本行的宽度,ios,objective-c,uilabel,Ios,Objective C,Uilabel,在iOS 6及更低版本中,我可以使用–sizeWithFont:forWidth:lineBreakMode:,但在iOS 7中已被弃用 在苹果的文档中,它说使用–boundingrectize:options:attributes:context:代替 如何使用UILineBreakModeWordWrap获取文本宽度?将NSString传递到此方法中,它将返回文本的高度和宽度。您需要在BoundingRectize中设置最大高度和宽度,以满足您的需要 - (CGSize)sizeOfText

在iOS 6及更低版本中,我可以使用–sizeWithFont:forWidth:lineBreakMode:,但在iOS 7中已被弃用

在苹果的文档中,它说使用–boundingrectize:options:attributes:context:代替

如何使用UILineBreakModeWordWrap获取文本宽度?

将NSString传递到此方法中,它将返回文本的高度和宽度。您需要在BoundingRectize中设置最大高度和宽度,以满足您的需要

- (CGSize)sizeOfText:(NSString*)text{

NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14.0f]}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){yourMaxWidth, CGFLOAT_MAX}
                                           options:NSStringDrawingUsesLineFragmentOrigin
                                           context:nil];

return CGSizeMake(rect.size.width,rect.size.height);
 }

你不明白哪一部分?您是否尝试使用boundingRect。。。方法?仅供参考-最后一行可以是return rect.size;。