サーチ…


備考

NSAttributedStringを使用してフォントの色を設定する

カスタムカーニング(文字間隔)を持つ文字列を作成する

NSAttributedString (およびその可変兄弟NSMutableAttributedString )を使用すると、複雑な文字列をユーザーに作成できます。

一般的なアプリケーションは、これを使用して文字列を表示し、カスタムカーニング/文字間隔を追加することです。

これは、次のように達成されます(ラベルはUILabel )。 "kerning"という単語には異なるカーニングが適用されます。

迅速

var attributedString = NSMutableAttributedString("Apply kerning")
attributedString.addAttribute(attribute: NSKernAttributeName, value: 5, range: NSMakeRange(6, 7))
label.attributedText = attributedString

目標-C

NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];

取り消し線テキストを含む文字列を作成する

目標-C

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
                    value:@2
                    range:NSMakeRange(0, [attributeString length])];

迅速

let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: "Your String here")
attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))

次に、これをあなたのUILabelに追加することができます:

yourLabel.attributedText = attributeString;

Swiftの属性付き文字列と太字のテキストの追加

let someValue : String = "Something the user entered"     
let text = NSMutableAttributedString(string: "The value is: ")
text.appendAttributedString(NSAttributedString(string: someValue, attributes: [NSFontAttributeName:UIFont.boldSystemFontOfSize(UIFont.systemFontSize())]))

結果は次のようになります。

値は次のとおりです。 ユーザーが入力したもの

単語または文字列の色を変更する

目標-C

UIColor *color = [UIColor redColor];
NSString *textToFind = @"redword";

NSMutableAttributedString *attrsString =  [[NSMutableAttributedString alloc] initWithAttributedString:yourLabel.attributedText];

// search for word occurrence
NSRange range = [yourLabel.text rangeOfString:textToFind];
if (range.location != NSNotFound) {
    [attrsString addAttribute:NSForegroundColorAttributeName value:color range:range];
}

// set attributed text
yourLabel.attributedText = attrsString;

迅速

let color = UIColor.red;
let textToFind = "redword"
        
let attrsString =  NSMutableAttributedString(string:yourlabel.text!);
        
// search for word occurrence
let range = (yourlabel.text! as NSString).range(of: textToFind)
if (range.length > 0) {
     attrsString.addAttribute(NSForegroundColorAttributeName,value:color,range:range)
}
        
// set attributed text
yourlabel.attributedText = attrsString

注意

ここで主なのは、 NSMutableAttributedStringとセレクタNSMutableAttributedString addAttribute:value:rangeを属性NSForegroundColorAttributeNameで使用して文字列範囲の色を変更することです:

NSMutableAttributedString *attrsString =  [[NSMutableAttributedString alloc] initWithAttributedString:label.attributedText];
[attrsString addAttribute:NSForegroundColorAttributeName value:color range:range];

たとえば、NSRegularExpressionのように範囲を取得する別の方法を使用することができます。

すべての属性を削除する

目標-C

NSMutableAttributedString *mutAttString = @"string goes here";
NSRange range = NSMakeRange(0, mutAttString.length);
[mutAttString setAttributes:@{} range:originalRange];

アップルあたり我々が使用するドキュメント、などsetAttributesないaddAttribute

迅速

mutAttString.setAttributes([:], range: NSRange(0..<string.length))


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow