首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否在不丢失格式的情况下更改属性化UILabel的文本?

是否在不丢失格式的情况下更改属性化UILabel的文本?
EN

Stack Overflow用户
提问于 2012-10-03 18:03:59
回答 2查看 20.3K关注 0票数 19

在故事板中,我布局了一组具有各种格式选项的标签。

然后我就做了:

代码语言:javascript
复制
label.text = @"Set programmatically";

所有的格式化都会丢失!这在iOS5中工作得很好。

必须有一种只更新文本字符串而不重新编码所有格式的方法?!

代码语言:javascript
复制
label.attributedText.string 

是只读的。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-03 18:07:07

attributedString包含它的所有格式化数据。标签对格式一无所知。

您可以将属性存储为单独的字典,然后在更改attributedString时可以使用:

代码语言:javascript
复制
[[NSAttributedString alloc] initWithString:@"" attributes:attributes range:range];

唯一的另一种选择是再次构建属性。

票数 4
EN

Stack Overflow用户

发布于 2013-06-17 08:37:26

您可以使用以下命令将属性提取为字典:

代码语言:javascript
复制
NSDictionary *attributes = [(NSAttributedString *)label.attributedText attributesAtIndex:0 effectiveRange:NULL];

然后将它们与新文本一起添加回来:

代码语言:javascript
复制
label.attributedText = [[NSAttributedString alloc] initWithString:@"Some text" attributes:attributes];

这假设标签中包含文本,否则您将崩溃,因此您可能应该首先使用以下命令对其执行检查:

代码语言:javascript
复制
if ([self.label.attributedText length]) {...}
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12706188

复制
相关文章

相似问题

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