在 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
objective-c - 如何在 Swift 项目中使用 Objective-C CocoaPod
objective-c - 基于 View 的 NSTableView 具有动态高度的行
objective-c - Objective-c 中的 "instance variable"和
objective-c - 值/对象的 NSDictionary 键?
iphone - Objective-C 将 NSDate 设置为当前 UTC