【问题标题】:Contenting deprecated sizeWithFont:constrainedToSize to boundingRectWithSize:options:attributes:context:满足弃用 sizeWithFont:constrainedToSize 到 boundingRectWithSize:options:attributes:context:
【发布时间】:2014-07-02 15:56:18
【问题描述】:

如何转换

 CGSize labelHeighSize = [text sizeWithFont: [UIFont systemFontOfSize:16] constrainedToSize:maximumSize lineBreakMode:NSLineBreakByTruncatingTail];

CGSize labelHeighSize = [text boundingRectWithSize:maximumSize options:  attributes:  context: 

【问题讨论】:

标签: ios objective-c deprecation-warning


【解决方案1】:

首先方法:

 - (CGRect)   boundingRectWithSize:(CGSize)size 
                           options:(NSStringDrawingOptions)options 
                        attributes:(NSDictionary *)attributes 
                           context:(NSStringDrawingContext *)context;

返回CGRect 而不是CGSize,所以你需要使用CGRect

编辑 根据苹果文档看到here,它说

如果NSStringDrawingUsesLineFragmentOrigin 不是,则忽略此选项 也设置。此外,换行模式必须是 NSLineBreakByWordWrappingNSLineBreakByCharWrapping 用于此选项 生效。可以在段落中指定换行模式 在绘图的属性字典参数中传递的样式 方法。

以下是您可以使用的示例代码:

NSString *text = @"Some text to measure";
UIFont *labelFont = [UIFont systemFontOfSize:16];

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
//set the line break mode
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 

NSDictionary *attrDict = [NSDictionary dictionaryWithObjectsAndKeys:labelFont,
                                       NSFontAttributeName,
                                       paragraphStyle,
                                       NSParagraphStyleAttributeName,
                                       nil];


//assume your maximumSize contains {255, MAXFLOAT}     
CGRect lblRect = [text boundingRectWithSize:(CGSize){225, MAXFLOAT} 
                                    options:NSStringDrawingUsesLineFragmentOrigin
                                 attributes:attrDict 
                                    context:nil];
CGSize labelHeighSize = lblRect.size; 

【讨论】:

  • 如何添加 lineBreakMode ?
  • CGSize labelHeighSize = lblRect.size;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多