在故事板中,我布局了一组具有各种格式选项的标签。
然后我就做了:
label.text = @"Set programmatically";
所有的格式化都会丢失!这在iOS5中工作得很好。
必须有一种只更新文本字符串而不重新编码所有格式的方法?!
label.attributedText.string
是只读的。
提前谢谢。
发布于 2012-10-03 18:07:07
attributedString包含它的所有格式化数据。标签对格式一无所知。
您可以将属性存储为单独的字典,然后在更改attributedString时可以使用:
[[NSAttributedString alloc] initWithString:@"" attributes:attributes range:range];
唯一的另一种选择是再次构建属性。
发布于 2013-06-17 08:37:26
您可以使用以下命令将属性提取为字典:
NSDictionary *attributes = [(NSAttributedString *)label.attributedText attributesAtIndex:0 effectiveRange:NULL];
然后将它们与新文本一起添加回来:
label.attributedText = [[NSAttributedString alloc] initWithString:@"Some text" attributes:attributes];
这假设标签中包含文本,否则您将崩溃,因此您可能应该首先使用以下命令对其执行检查:
if ([self.label.attributedText length]) {...}
https://stackoverflow.com/questions/12706188
复制相似问题