ios - “NSAttributedString对于自动调整大小无效,它必须具有单个跨接段落样式(或无)且具有非包装的lineBreakMode。”

标签 ios iphone objective-c cocoa-touch

我正在使用下面给出的代码将NSMutableParagraphStyle添加到标签,但是此代码在iOS7上运行良好,但在iOS 6上却报错。我也添加了检查功能,但仍然使应用程序崩溃。

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“NSAttributedString对于自动调整大小无效,它必须具有单个跨接段落样式(或无),并且不具有换行lineBreakMode。”

if ([_precherDetailLabel respondsToSelector:@selector(setAttributedText:)] && NSClassFromString(@"NSMutableParagraphStyle")!=Nil)
{
   @try {

      NSMutableParagraphStyle *paragrahStyle = [[NSMutableParagraphStyle alloc] init];
      [paragrahStyle setLineSpacing:3];

      NSMutableAttributedString *attributedString=[[NSMutableAttributedString alloc] initWithString:string];
      [attributedString addAttribute:NSParagraphStyleAttributeName
                                     value:paragrahStyle
                                     range:NSMakeRange(0, attributedString.length)];
      _precherDetailLabel.attributedText=attributedString;

   }
   @catch (NSException *exception) {
       NSLog(@"exception # 2324  %@",exception);
   }
}

最佳答案

尝试这个

    [_precherDetailLabel setAdjustsFontSizeToFitWidth:NO];

甚至仅适用于iOS6
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { //*
       [_precherDetailLabel setAdjustsFontSizeToFitWidth:NO];
}
  • 将iOS 6如此处所述检测为:https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/SupportingEarlieriOS.html
  • 关于ios - “NSAttributedString对于自动调整大小无效,它必须具有单个跨接段落样式(或无)且具有非包装的lineBreakMode。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20539337/

    相关文章:

    iphone - 如何从 ABAddressBook 中检索所有联系人而不重复

    ios - 以模态方式呈现具有搜索显示 Controller 并返回所选单元格的 TableView Controller

    ios - 如何制作一个异步方法来处理来自委托(delegate)的数据?

    objective-c - 如何在 Objective C 中绘制一条动画?

    ios - 导出用于临时部署时 Xcode 7.1 崩溃

    ios - 在 iOS 设备上运行 swift 应用程序时出现 THREAD 1 : EXC_BREAKPOINT (code = EXC_ARM_BREAKPOINT. ..) 错误

    iphone - AVFoundation 图像变得异常黑暗

    ios - 将 iPhone xib 转换为 iPad xib?

    ios - 如何在不同的 ViewController 中使用 JSONModel 数据?

    objective-c - 父类(super class)方法放置在子类中