【发布时间】:2014-07-06 04:01:40
【问题描述】:
-(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 中环顾四周,那里的答案也没有使用该参数。 - 另外我认为在 IOS 6 中 sizeWithFont: 必须调用 sizeWithFont:constraintedToSize: 但使用默认大小。但是尺寸是多少?
- 最后我在
[self sizeWithFont:font];收到警告,因为它是一个已弃用的函数。我想删除该警告。
建议?
【问题讨论】:
标签: objective-c ios7