objective-c - sizeWithFont 方法已弃用。 boundingRectWith

在 iOS7 中,sizeWithFont 已被弃用,所以我使用 boundingRectWithSize(它返回一个 CGRect 值)。我的代码:

 UIFont *fontText = [UIFont fontWithName:[AppHandlers zHandler].fontName size:16];
                    // you can use your font.

 CGSize maximumLabelSize = CGSizeMake(310, 9999);

 CGRect textRect = [myString boundingRectWithSize:maximumLabelSize   
                             options:NSStringDrawingUsesLineFragmentOrigin
                             attributes:@{NSFontAttributeName:fontText}
                             context:nil];

 expectedLabelSize = CGSizeMake(textRect.size.width, textRect.size.height);

textRect 中,我得到的尺寸大于我的 maximumLabelSize,与使用 sizeWithFont 时的尺寸不同。我该如何解决这个问题?

最佳答案

如何创建新标签并使用 sizeThatFit:(CGSize)size ??

UILabel *gettingSizeLabel = [[UILabel alloc] init];
gettingSizeLabel.font = [UIFont fontWithName:@"YOUR FONT's NAME" size:16];
gettingSizeLabel.text = @"YOUR LABEL's TEXT";
gettingSizeLabel.numberOfLines = 0;
gettingSizeLabel.lineBreakMode = NSLineBreakByWordWrapping;
CGSize maximumLabelSize = CGSizeMake(310, CGFLOAT_MAX);

CGSize expectSize = [gettingSizeLabel sizeThatFits:maximumLabelSize];

编辑:上面的代码不适用于ios 7及以上,所以请在下面使用:

CGRect textRect = [myString boundingRectWithSize:maximumLabelSize   
                         options:NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingUsesFontLeading
                         attributes:@{NSFontAttributeName:fontText}
                         context:nil];

关于objective-c - sizeWithFont 方法已弃用。 boundingRectWithSize 返回一个意外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398674/

相关文章:

objective-c - NSString 到 CFStringRef 和 CFStringRef

ios - 在 SKScene 中设置按钮

objective-c - 如何在 Swift 项目中使用 Objective-C CocoaPod

objective-c - 基于 View 的 NSTableView 具有动态高度的行

objective-c - 如何为单个文件启用 ARC

objective-c - Objective-c 中的 "instance variable"和

objective-c - 值/对象的 NSDictionary 键?

iphone - Objective-C 将 NSDate 设置为当前 UTC

objective-c - 如何使用 AFNetworking 设置超时

iphone - NSLocale currentLocale 总是返回 "en_US"而不是用户的