菜鸟教程小白 发表于 2022-12-12 21:25:00

iOS 7.0 UITextView 在添加图像后变得非常慢


                                            <p><p>我正在尝试在 ios7 及更高版本中使用 UITextView 制作文本编辑器,但我遇到了一些可怕的错误。我经历了许多与 textview 滚动相关的 Stack Overflow 问题。但是我无法找到的主要问题是在添加 NSTextAttachment(Custom) 后文本的渲染速度很慢。我正在使用这篇文章中描述的方法:</p>

<p> <a href="http://ossh.com.au/design-and-technology/software-development/implementing-rich-text-with-images-on-os-x-and-ios/" rel="noreferrer noopener nofollow">http://ossh.com.au/design-and-technology/software-development/implementing-rich-text-with-images-on-os-x-and-ios/</a> </p>

<p>但是在添加图像后,文本的输入变得非常缓慢。代码与帖子中描述的几乎相同,所以我没有在这里粘贴。原因可以在以下问题中说:
<a href="https://stackoverflow.com/questions/22084906/ios-ios-7-uitextview-is-slow-after-typing-lots-of-text" rel="noreferrer noopener nofollow">ios - iOS 7 UITextView is slow after typing lots of text</a> </p>

<blockquote>
<p>&#34;drawGlyphsForGlyphRange runs N*2 times, where N is the number of times
your lines word-wrapped.&#34;</p>
</blockquote>

<p>但我不确定。有什么建议可以解决这种极其缓慢的文本渲染问题吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用以下代码添加时,我通过缩放图像解决了滞后问题</p>

<pre><code>-(void)insertImage:(UIImage *)image
{
NSTextAttachment* attachment = [ initWithData:UIImageJPEGRepresentation(image, 0.0) ofType:@&#34;image/jpeg&#34;];

    float scalingFactor = 1.0;

    CGSize imageSize = ;
    float width = self.frame.size.width;
    if (width &lt; imageSize.width)
      scalingFactor = (width)*scalingFactor / imageSize.width;

    CGRect rect = CGRectMake(0, 0, imageSize.width*scalingFactor, imageSize.height *scalingFactor);
    attachment.image = ;
    attachment.bounds = ;
    NSRange range = ;
    NSAttributedString* attachmentchar =
    ;
    [ insertAttributedString:attachmentchar atIndex:range.location];

}
</code></pre>

<p>我注意到使用 <strong>- (void)textStorage:(NSTextStorage *)textStorage willProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)delta</strong> 并枚举附件的文本存储并用自定义 nstextattachment 子类替换它们效率不高,并且会大大减慢渲染速度。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 7.0 UITextView 在添加图像后变得非常慢,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23026975/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23026975/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 7.0 UITextView 在添加图像后变得非常慢