UITextView
を使用しています。フォントと属性付きテキストをコードで設定しています。UITextViewがカスタムフォントを使用しているときに属性付きテキストが機能しない
ケース1:カスタムフォント - YES、attribtuedテキスト - NO
のTextViewのテキストはカスタムフォントで表示されます。
帰属テキストをカスタムフォントで入力したい場合。メッセージ:この場合はが太字で表示されます。
ケース2:カスタムフォント - YES、attribtuedテキスト -
のみattribtuedテキスト(太字)YESは、カスタムフォントで表示されます。
私が持っているコードは次のとおりです。
- (void)loadTextView
{
_textView.text=NSLocalizedString(@"more_info_text",nil);
_textView.font=[UIFont fontWithName:@"BurbankSmall-Medium" size:16];
NSRange rangeBold = [_textView.text rangeOfString:@"Examples of invalid characters:"];
NSRange rangeBold2 = [_textView.text rangeOfString:@"Restricted text:"];
NSRange rangeBold3 = [_textView.text rangeOfString:@"Message :"];
UIFont *fontText = [self boldFontWithFont:_textView.font];
NSDictionary *dictBoldText = [NSDictionary dictionaryWithObjectsAndKeys:fontText, NSFontAttributeName, nil];
NSMutableAttributedString *mutAttrTextViewString = [[NSMutableAttributedString alloc] initWithString:_textView.text];
[mutAttrTextViewString setAttributes:dictBoldText range:rangeBold];
[mutAttrTextViewString setAttributes:dictBoldText range:rangeBold2];
[mutAttrTextViewString setAttributes:dictBoldText range:rangeBold3];
[_textView setAttributedText:mutAttrTextViewString];
_textView.editable=NO;
_textView.selectable=NO;
}
- (UIFont *)boldFontWithFont:(UIFont *)font
{
UIFontDescriptor * fontD = [font.fontDescriptor
fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold];
return [UIFont fontWithDescriptor:fontD size:16];
}
私はラインsetAttributedText:mutAttrTextViewString
コメントすると、evrythingは、カスタムフォントで表示されます。それをコメント解除すると、帰属するテキストのみがカスタムフォントで表示され、残りはデフォルトのフォントで表示されます。
どうしてですか?これが不可能な場合は、HTMLコンテンツを属性付きテキストとして含めることを検討していますが、最悪の場合、これをオプションとして考慮する必要があります。
'NSMutableAttributedString * mutAttrTextViewString = [[NSMutableAttributedStringのalloc] initWithString:_textView.text属性:[UIFont fontWithName::{NSFontAttributeName @ @」 BurbankSmall-Medium "size:16]}];'?あなたの現在のコードで 'mutAttrTextViewString'をログすると、テキストの残りの部分(太字のフォントを置かなかった部分)のフォントがなく、デフォルトでフォントを取得する必要はありません* PLAINテキスト*の '_textView'で設定します。 – Larme
私はテキストビューのフォントを設定しましたが、なぜmutAttrTextViewStringがtextViewフォントを使用していないのですか?@Larme –
私はそれがあなたの全部のmutAttrTextViewStringの使用を置き換えるべきではないと言いました。 'NSMutableAttributedString * mutAttrTextViewString = [[NSMutableAttributedString alloc] initWithString:_textView.text];'という行だけです。残りの部分については、 '[mutAttrTextViewString setAttributes:dictBoldText range:rangeBold];'と他の2行を呼び出しています。 – Larme