NSMutableAttributedString
とNSAttributedString
を使用して、2つの異なるフォントサイズでラベルテキストを表示しています。私のアプローチは:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"days" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
これにより、フォントサイズ12に「2」、フォントサイズ8に「日」の属性付き文字列が返されます。
ただし、他のシナリオは2の後に改行を追加することです。次のコードを使用します。
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
今回の属性付き文字列は、全文に属性を適用します。フォントサイズ8で「2\ndays」の属性文字列を取得します。
コードの下でこれを試してください、それはうまくいきます:-
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
self.lbl.numberOfLines = 0;
[self.lbl setAttributedText:muAtrStr];
注:-また、任意の行数を許可するには、numberOfLinesを0に設定します
これはSwiftで動作します:
let attributedText = NSAttributedString(string: "Happy \nDays")
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.attributedText = attributedText