【问题标题】:Responsive Scrolling - setWantsLayer Webkit problems响应式滚动 - setWantsLayer Webkit 问题
【发布时间】:2014-02-09 20:34:51
【问题描述】:

我的项目基于 Xcode 3 中构建的基础 SDK 10.6 - 重要的是它是一个通用二进制文件,也适用于 PPC。

在 10.9 中,与 Safari 相比,我的应用程序的滚动非常不稳定 - 如果我添加

[self setWantsLayer:YES];滚动速度像 Safari 一样快,棒极了!

但是我在滚动时出现视觉故障,请参阅 eBay 的屏幕截图,其中应该固定在页面底部的合法图像不断重复。

我知道 setWantsLayer 不应该与 webKit 一起使用,但有没有办法阻止这些视觉故障,或者有没有其他方法可以在不使用 setWantsLayer 的情况下获得平滑滚动。

上面是滚动时 eBay 的问题,下面是滚动时 Twitter 的问题,发生在各种网站上,尤其是固定对象。

Twitter 的问题

【问题讨论】:

    标签: macos cocoa webview scroll layer


    【解决方案1】:

    实际上,我最初认为下面的解决方案是一个解决方案,却没有意识到我又回到了可怕的跳跃滚动。留作参考。

    我在这里遇到了和你一样的问题。

    我发现,如果我在子类中实现 canDrawSubviewsIntoLayer,我的渲染故障就得到了修复。

    所以在initWithCoder/initWithFrame方法调用中:

    [self setWantsLayer:YES];
    

    然后实现canDrawSubviewsIntoLayer

    - (BOOL)canDrawSubviewsIntoLayer {
        return YES;
    }
    

    您需要子类化 webView。我还发现,如果您将下面的 NSView 子类化并在 NSView 子类中做同样的事情,那么效果同样好,但由于我不明白为什么会这样,我的建议是对 webView 进行子类化。

    我希望它可以帮助你并帮助其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多