我正在尝试使用NSAttributed
字符串在UILabel
中显示,我使用自动换行作为换行模式。
但是当我运行应用程序时,它会抛出异常“NSAttributedString invalid for autoresizing, it must have a single spanning paragraph style (or none) with a non-wrapping lineBreakMode.
”
有人可以建议我如何解决这个问题吗?
答案 0 :(得分:8)
要修复,请设置:
[yourLabel setAdjustsFontSizeToFitWidth:NO];
请确保稍后不要在代码中覆盖此内容;)
答案 1 :(得分:3)
对于其他任何看到此问题的人。帮助我的是禁用UILabel
文本的大小调整。在我的代码上我有这个:
[myLabel setAdjustsLetterSpacingToFitWidth:YES];
[myLabel setAdjustsFontSizeToFitWidth:YES];
[myLabel setMinimumScaleFactor:15.0/myLabel.font.pointSize];
删除它并开始工作。
答案 2 :(得分:0)
你假设使用NSMutableAttributedString
的方式错误,应该用作
NSMutableDictionary *a = [[NSMutableDictionary alloc] init];
[a setObject:[NSNumber numberWithInt:1] forKey:NSStrikethroughStyleAttributeName];
NSMutableAttributedString *b = [[NSMutableAttributedString alloc] initWithString:@"abcd" attributes:a];
self.label.attributedText = b;
在尝试上面的代码之后,你应该像我在图像中看到的那样得到UILabel输出
但如果你想分别设置属性,那么你应该这样做
[b addAttribute:ATTRIBUTENAME value:VALUE range:RANGE];
例如设置背景颜色的属性
[str addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(2,4)];