0

静的範囲番号を追加せずに NSMutableAttributedString の部分文字列を置き換えるにはどうすればよいですか? このテキストのラベルがあります: @"12 friends"、12 (友達の数) を別の数字に置き換えたい (そして、この部分文字列に同じ属性を使用する) と、それがサーバーから送られてくるので、以下のアプローチは使用できません。桁数は不明です:

/*wrong approach*/
NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithAttributedString:label.attributedText];
[mutableAttributedString replaceCharactersInRange:NSMakeRange(0, 2) withString:counter];
[label setAttributedText:mutableAttributedString];
4

1 に答える 1

1

ラベルが常に「x friends」と表示される場合は、書式設定された文字列を使用して、パラメーターとして友達の数を渡すだけではどうですか。もちろん、ローカライズなどのためにこのすべてを変数にすることもできますが、基本的な考え方は次のとおりです。

NSInteger numberFromServer = ...

NSString *string = [NSString stringWithFormat:@"%d friend%@",numberFromServer,((numberFromServer != 1) ? @"s" : @"")];

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];

[label setAttributedText:attributedString];
于 2013-08-23T19:16:15.240 に答える