-(CGSize) sizeWithFont2:(UIFont *)font
{
if ([self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)])
{
CGSize result = [self sizeWithAttributes:@{NSFontAttributeName:font}];
return result;
}
return [self sizeWithFont:font];
}
- (CGSize) sizeWithFont2:(UIFont *)font constrainedToSize:(CGSize)size
{
if ([self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)])
{
CGRect frame = [self boundingRectWithSize:size
options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName:font}
context:nil];
return frame.size;
}
else
{
return [self sizeWithFont:font constrainedToSize:size];
}
}
- (CGSize) sizeWithFont2:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode) lineBreakMode
{
return [self sizeWithFont2:font constrainedToSize:size]; //the NSLineBreakMode not used?
}
请注意,代码有3个问题:
- (CGSize) sizeWithFont2:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode) lineBreakMode
,根本不使用参数lineBreakMode。我不知道如何在IOS 7中使用它。我在stackOverflow中查看并且那里的答案也没有使用该参数。[self sizeWithFont:font];
收到警告,因为它是一个已弃用的功能。我想删除那个警告。建议?
答案 0 :(得分:2)
第3点:
如果您使用SDK7,您将始终收到此警告或错误。
第2点:
您可以选择像
这样的尺寸CGSize maximumSize = CGSizeMake(300, FLT_MAX);
您可以选择300作为宽度,因为它是屏幕尺寸,边距有一点空间。 但是,您应该使用自己的字体和大小值。