我有一个UILabel,它的外观是在IB中使用"Attributed“定义的。我正在使用在运行时获取的文本更新标签。如果我在代码中更新标签的.text属性,属性就消失了。同样,如果我创建一个新的样式来设置标签的attributedText属性,我将需要知道NSAttributedString属性。如何从字符串/标签中检索现有的样式属性?我不认为我们应该定义两次样式属性,在IB中,然后在代码中?
更新:我现在就是这么做的。它似乎起作用了。请注意,UILabel是UICollectionView中UICollectionViewCell的一部分。代码有点臃肿,但看起来还不错。我使用现有的字符串创建一个新的可变属性字符串,然后替换字符。另外,因为这是集合视图界面的一部分,所以我不能在单元格没有文本时取消设置文本或其他内容,因为我猜这也会删除样式。因此,当没有文本时,我只是将标签设置为隐藏,保留样式。
if (mytextstring != nil) {
NSMutableAttributedString* newthing = [[NSMutableAttributedString alloc] initWithAttributedString:cell.label.attributedText];
[newthing replaceCharactersInRange:NSMakeRange(0, newthing.length) withString:mytextstring];
cell.label.attributedText = newthing;
cell.label.hidden = NO;
}
else {
cell.label.hidden = YES;
}发布于 2014-07-03 16:41:52
您可以调用myTextField.attributedText来获取NSAttributedString。使用NSMutableAttributedString的mutableString属性修改初始字符串。
https://stackoverflow.com/questions/24548377
复制相似问题