菜鸟教程小白 发表于 2022-12-12 11:17:52

ios - 使用自定义字体时,UITextView 属性文本不起作用


                                            <p><p>我正在使用 <code>UITextView</code> 并通过代码设置其字体和属性文本。</p>

<p><strong>案例 1:</strong> <em>自定义字体 - 是</em>,<em>属性文本</em> - 否</p>

<p> <a href="/image/gRKU9.png" rel="noreferrer noopener nofollow"><img src="/image/gRKU9.png" alt="enter image description here"/></a> </p>

<p>textView 文本以自定义字体显示。</p>

<p>我想要带有自定义字体的属性文本,即 <strong>Message :</strong> 在这种情况下应该加粗。</p>

<p><strong>案例 2:</strong> <em>自定义字体 - 是</em>,<em>属性文本</em> - 是</p>

<p> <a href="/image/cxM8P.png" rel="noreferrer noopener nofollow"><img src="/image/cxM8P.png" alt="enter image description here"/></a> </p>

<p>只有属性文本(粗体文本)以自定义字体显示。</p>

<p>我的代码是:</p>

<pre><code>- (void)loadTextView
{
    _textView.text=NSLocalizedString(@&#34;more_info_text&#34;,nil);
    _textView.font=;

    NSRange rangeBold= ;
    NSRange rangeBold2 = ;
    NSRange rangeBold3 = ;

    UIFont *fontText = ;
    NSDictionary *dictBoldText = ;

    NSMutableAttributedString *mutAttrTextViewString = [ initWithString:_textView.text];
    ;
    ;
    ;

    ;

    _textView.editable=NO;
    _textView.selectable=NO;
}

- (UIFont *)boldFontWithFont:(UIFont *)font
{
    UIFontDescriptor * fontD = [font.fontDescriptor
                              fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold];
    return ;
}
</code></pre>

<p>当我评论 <code>setAttributedText:mutAttrTextViewString</code> 行时,evrything 会以自定义字体显示。当我取消注释时,只有属性文本以自定义字体显示,其余以默认字体显示。</p>

<p>为什么会这样?如果这不可能,我正在考虑将 html 内容作为属性文本包含在内,但我想在最坏的情况下将其视为一个选项。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>有一个相关问题<a href="https://stackoverflow.com/questions/36064762/change-font-size-without-change-uitextview-attributedtext" rel="noreferrer noopener nofollow">here</a> .<br/>
主要问题是 <code>UITextView</code> 的 <code>font</code> (<code>UIFont</code>) 属性将应用于其 <code>text</code> (<code>NSString</code>) 属性(也称为“纯文本”)而不是 <code>attributedText</code> (<code>NSAttributedString</code>)。</p>

<p>所以你必须自己为你的 <code>NSAttributedString</code> 应用“正常”字体效果。</p>

<p>所以只需替换:</p>

<pre><code>NSMutableAttributedString *mutAttrTextViewString = [ initWithString:_textView.text];
</code></pre>

<p>与:</p>

<pre><code>NSMutableAttributedString *mutAttrTextViewString = [ initWithString:_textView.text attributes:@{NSFontAttributeName:}];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用自定义字体时,UITextView 属性文本不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37120535/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37120535/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用自定义字体时,UITextView 属性文本不起作用