私はこのコードを持っていて、それは機能しています(https://stackoverflow.com/a/3586943/1187014からの回答)が、少し変更してみたいと思います:
NSString *text = @"Forgot password?";
if ([_labelForgotPassword respondsToSelector:@selector(setAttributedText:)])
{
// iOS6 and above : Use NSAttributedStrings
const CGFloat fontSize = 13;
UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize];
UIFont *regularFont = [UIFont systemFontOfSize:fontSize];
UIColor *foregroundColor = [UIColor whiteColor];
// Create the attributes
NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:
boldFont, NSFontAttributeName,
foregroundColor, NSForegroundColorAttributeName, nil];
NSDictionary *subAttrs = [NSDictionary dictionaryWithObjectsAndKeys:
regularFont, NSFontAttributeName, nil];
const NSRange range = NSMakeRange(16,0);
// Create the attributed string (text + attributes)
NSMutableAttributedString *attributedText =
[[NSMutableAttributedString alloc] initWithString:text
attributes:attrs];
[attributedText setAttributes:subAttrs range:range];
// Set it in our UILabel and we are done!
[_labelForgotPassword setAttributedText:attributedText];
} else {
// iOS5 and below
// Here we have some options too. The first one is to do something
// less fancy and show it just as plain text without attributes.
// The second is to use CoreText and get similar results with a bit
// more of code. Interested people please look down the old answer.
// Now I am just being lazy so :p
[_labelForgotPassword setText:text];
}
複数のテキストがある場合は、次のように言いましょう。
NSString *text1 = @"Forgot password?"; // relates with UILabel _labelForgotPassword
NSString *text2 = @"I agree with terms and condition"; // relates with UILabel _labelTerms
NSString *text3 = @"Your country is not listed yet?"; // relates with UILabel _labelCountry
私の頭に浮かんだ最初の方法は、IFをネストすることですが、属性を付ける必要があるテキストがたくさんある場合、ネストされたIFは非常に見苦しくなりますよね?
したがって、そのコードをメソッドに作成して、文字列、_label の名前、範囲などを指定し、結果を特定の UILabel に返す方法を説明します。そしてそれはすべてviewDidLoadの下でトリガーされます。ボタンを押したり、他の何かによってではありません。
ありがとうございました。