我有一个方法,可以根据字符串的长度(并使用相应的正确字体大小)为UITextView提供完美的尺寸:
- (NSInteger) heightOfLabel:(NSString*) string {
CGSize maximumLabelSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width - 40, FLT_MAX);
CGSize expectedLabelSize = [[NSString stringTrimmedForLeadingAndTrailingWhiteSpacesFromString:string]
sizeWithFont:[UIFont systemFontOfSize:15]
constrainedToSize:maximumLabelSize
lineBreakMode:NSLineBreakByWordWrapping];
return expectedLabelSize.height + 5;
}
事实上,即使在iOS7中,它仍然完美地适合我。尽管现在它会出现一个警告方法,说我不应该使用'sizeWithFont:contrainedToSize:lineBreakMode'。
它现在说我应该使用-boundingRectWithSize:options:attributes:context:
这种方法对于iOS7并不新,因此我认为可以在Stack Overflow上提问,而无需跨越到官方的苹果开发者论坛。
我有三个问题:
1)因为它已被弃用,是否意味着我应该替换它,尽管它仍然正常工作?
2)我尝试了许多不同的boundingRectWithSize:方法,使用各种变量,但它从来都不是完美的,它总是略微偏差(如许多stackoverflow问题所指出的那样) - 是否有一种完美的替代方法,使用这个未弃用的方法与我的先前方法完全相同,且尽可能少的麻烦?
3)为什么要移除这种方法?是因为与另一种方法重叠吗?