Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios sizeWithFont:替换_Ios_Nsstring_Ios7_Nsattributedstring - Fatal编程技术网

Ios sizeWithFont:替换

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

以下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_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

。如何指定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;

我有一种感觉,这个问题即将成为未来一年的燃料,因此应该注意,这个问题包含了我的大部分答案(即使范围不同):。也许对另一个问题更详细的回答更合适。我投票结束我自己的问题以防万一。