gpt4 book ai didi

iphone - 用户界面滞后,背景更新频繁

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:26 26 4
gpt4 key购买 nike

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

设置CADisplay链接重复调用我的draw方法:

displayLink_ = [CADisplayLink displayLinkWithTarget:self selector:@selector(drawSublayers)];
[displayLink_ setFrameInterval:2];
[displayLink_ addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];

drawSublayers 方法将 CGImage 绘制为

  CGImageRelease((__bridge CGImageRef) imageLayer_.contents);
[imageLayer_ setContents:(id)self.cameraImage_.CGImage];

问题是摇杆和其他控件都非常滞后。这是因为背景图像的绘制占用了足够多的处理器,导致 mainRunLoop 被拖慢而跟不上。我读过的所有帖子都表明将任何 UI 更新移动到单独的线程是行不通的(独立测试已经证实了这一点 - 该方法会触发,但不会发生绘图)。

有什么想法吗?背景图像不是优先事项,也就是说,我不介意绘制它需要一些时间。我只是不希望它干扰 UI 的其余部分。

最佳答案

将您的绘图移出主线程。 performSelectorinBackground:

http://www.chrisumbel.com/article/asynchronous_iphone_nsthread_nstimer

关于iphone - 用户界面滞后,背景更新频繁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com