如何在不影响样式的情况下更新UILabel中的attributionString文本

时间:2014-07-03 08:13:18

标签: ios interface-builder nsattributedstring

我有一个UILabel,其外观在IB中使用“Attributed”定义。我正在使用在运行时获取的文本更新标签。 如果我在代码中更新标签的.text属性,属性就会消失。同样,如果我创建一个新的NSAttributedString来设置标签的attributionText属性,我需要知道样式属性。如何从字符串/标签中检索现有样式属性?我不认为我们应该在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;
}

1 个答案:

答案 0 :(得分:0)

您可以致电myTextField.attributedText获取NSAttributedString。使用mutableString的{​​{1}}属性修改初始字符串。