菜鸟教程小白 发表于 2022-12-11 22:39:48

iphone - 具有频繁更新背景的滞后 UI


                                            <p><p>我的应用有一个“主” View 、一个自定义拇指杆控件和一些按钮。主视图上定义了一个额外的 CALayer,其内容会随着流图像不断更新。一些代码:</p>

<p>设置CADisplay链接重复调用我的draw方法:</p>

<pre><code>displayLink_ = ;
;
forMode:NSRunLoopCommonModes];
</code></pre>

<p><code>drawSublayers</code>方法将CGImage绘制为</p>

<pre><code>CGImageRelease((__bridge CGImageRef) imageLayer_.contents);
;
</code></pre>

<p>问题是拇指杆和其他控件都非常滞后。这是因为背景图像的绘制占用了足够多的处理器,以至于 mainRunLoop 被拖下并且无法跟上。我读过的所有帖子都表明将任何 UI 更新移动到单独的线程都不起作用(独立测试已经证实了这一点 - 方法触发,但没有绘图发生)。 </p>

<p>有什么想法吗?背景图像不是优先事项,即我不介意绘制它需要一些时间。我只是不希望它干扰 UI 的其余部分。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>将您的绘图移出主线程。 <code>performSelectorinBackground:</code></p>

<p> <a href="http://www.chrisumbel.com/article/asynchronous_iphone_nsthread_nstimer" rel="noreferrer noopener nofollow">http://www.chrisumbel.com/article/asynchronous_iphone_nsthread_nstimer</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 具有频繁更新背景的滞后 UI,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10114517/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10114517/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 具有频繁更新背景的滞后 UI