Ich verwende UITextView
und ich setze seine Schriftart und attributierten Text nach Code.UITextView attributierte Text funktioniert nicht, wenn benutzerdefinierte Schriftart verwendet
Fall 1:Gewohnheit-Schriftart - JA, attribtued Text - NO
Der Textview Text in benutzerdefinierter Schriftart angezeigt.
Ich möchte den attributierten Text mit benutzerdefinierten Schriftart, d. H. Nachricht: in diesem Fall shold fett werden.
Fall 2:Gewohnheit-Schriftart - JA, attribtued Text - JA
Nur der attribtued Text (Bold Text) in benutzerdefinierter Schriftart angezeigt.
Der Code, den ich habe, ist:
- (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];
}
Wenn ich die Linie setAttributedText:mutAttrTextViewString
Kommentar, evrything wird in benutzerdefinierter Schriftart angezeigt. Wenn ich es auskommentiere, wird nur der zugeordnete Text in einer benutzerdefinierten Schriftart angezeigt, und der Rest wird in der Standardschrift angezeigt.
Warum passiert das? Wenn das nicht möglich ist, denke ich, HTML-Inhalt als den attributierten Text aufzunehmen, aber ich möchte das als eine Option im schlimmsten Fall betrachten.
'NSMutableAttributedString * mutAttrTextViewString = [[NSMutableAttributedString alloc] initWithString: _textView.text Attribute: @ {NSFontAttributeName: [UIFont font: @“ BurbankSmall-Medium "Größe: 16]}];'? Wenn Sie 'mutAttrTextViewString' mit Ihrem aktuellen Code protokollieren, sollten Sie sehen, dass es nicht die Schriftart für den Rest des Textes hat (wo Sie die fette Schrift nicht eingefügt haben) und die Schriftart nicht standardmäßig erhalten muss set in '_textView' für * PLAIN text *. – Larme
Ich habe die Schriftart für die Textansicht festgelegt, und warum verwendet der mutAttrTextViewString die textView-Schriftart [email protected] –
Ich habe nicht gesagt, dass es Ihre gesamte Verwendung von mutAttrTextViewString ersetzen sollte. Es ist nur diese Zeile 'NSMutableAttributedString * mutAttrTextViewString = [[NSMutableAttributedString Alloc] initWithString: _textView.text];'. Für den Rest rufen Sie weiterhin '[mutAttrTextViewString setAttributes: dictBoldText range: rangeBold];' und die zwei anderen Zeilen auf. – Larme