首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSAttributedString对于自动调整大小异常无效

NSAttributedString对于自动调整大小异常无效
EN

Stack Overflow用户
提问于 2013-02-27 23:05:44
回答 3查看 2.5K关注 0票数 0

我正在尝试使用NSAttributed字符串在UILabel中显示,并且我使用换行作为换行模式。但当我运行应用程序时,它抛出异常"NSAttributedString invalid for autoresizing, it must have a single spanning paragraph style (or none) with a non-wrapping lineBreakMode.

有人能建议我如何解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-27 23:39:37

我假设你错误地使用了NSMutableAttributedString,它应该作为under使用,

代码语言:javascript
运行
复制
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输出

但是如果你想单独设置属性,你应该这样做

代码语言:javascript
运行
复制
[b addAttribute:ATTRIBUTENAME value:VALUE range:RANGE]; 

例如,设置背景颜色的属性

代码语言:javascript
运行
复制
[str addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(2,4)];
票数 0
EN

Stack Overflow用户

发布于 2013-09-19 01:06:31

要修复此问题,请设置:

代码语言:javascript
运行
复制
[yourLabel setAdjustsFontSizeToFitWidth:NO];

只需确保您不会在以后的代码中覆盖它;)

票数 8
EN

Stack Overflow用户

发布于 2013-06-18 16:57:09

对于任何其他看到这个问题的人。对我有帮助的是禁止调整UILabel的文本大小。在我的代码中我有:

代码语言:javascript
运行
复制
[myLabel setAdjustsLetterSpacingToFitWidth:YES];
[myLabel setAdjustsFontSizeToFitWidth:YES];
[myLabel setMinimumScaleFactor:15.0/myLabel.font.pointSize];

移除它并开始工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15115433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档