Ios sizeWithFont:替换
以下NSString方法在iOS 7中已被弃用:Ios sizeWithFont:替换,ios,nsstring,ios7,nsattributedstring,Ios,Nsstring,Ios7,Nsattributedstring,以下NSString方法在iOS 7中已被弃用: - (CGSize)sizeWithFont:(UIFont *)font NS_DEPRECATED_IOS(2_0, 7_0, "Use -sizeWithAttributes:"); - (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode: (NSLineBreakMode)lineBreakMode NS_DEPRECATED
- (CGSize)sizeWithFont:(UIFont *)font NS_DEPRECATED_IOS(2_0, 7_0, "Use -sizeWithAttributes:");
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:
(NSLineBreakMode)lineBreakMode NS_DEPRECATED_IOS(2_0, 7_0, "Use -boundingRectWithSize:options:attributes:context:");
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size NS_DEPRECATED_IOS(2_0, 7_0, "Use -boundingRectWithSize:options:attributes:context:");
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode NS_DEPRECATED_IOS(2_0, 7_0, "Use -boundingRectWithSize:options:attributes:context:");
虽然第一个的替换很简单,但其余的就不那么简单了。要获得完全相同的结果,对boundingRectWithSize:options:attributes:context:
的等效调用是什么
特别是:
选项的值应该是多少
- 如何指定
lineBreakMode
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail];
[attributedStr addAttribute:NSParagraphStyleAttributeName
value:paragraphStyle
range:NSMakeRange(0,[attributedStr length])];
加上这个
UIFont *font = [UIFont boldSystemFontOfSize:16];
CGRect new = [string boundingRectWithSize:CGSizeMake(200, 300) options:NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: font} context:nil];
CGSize stringSize= new.size;
我有一种感觉,这个问题即将成为未来一年的燃料,因此应该注意,这个问题包含了我的大部分答案(即使范围不同):。也许对另一个问题更详细的回答更合适。我投票结束我自己的问题以防万一。