【问题标题】:"Unrasterize" UIView layer“取消栅格化” UIView 层
【发布时间】:2013-03-25 15:29:55
【问题描述】:

我创建了一个带有三个子视图(UIButtons)的 UIView。

然后我将它作为子视图添加到 collectionView 中。(就像菜单一样)

这当然会减慢 FPS.. 为了不影响滚动性能,我栅格化了 UIView 的图层。 这按预期工作,但我现在想在动画停止时“取消栅格化” UIView 层,以便我能够再次使用按钮。

有什么建议吗?提前谢谢!

编辑:

我试过了:

[myView setNeedsLayout];

myView.layer.shouldRasterize = NO;
[myView.layer setNeedsDisplay];

【问题讨论】:

  • 不要在图层上调用 setNeedsDisplay,在视图上调用它:[myView setNeedsDisplay],这应该会导致它重新渲染视图和图层层次结构。
  • @MightyLeader 将其添加为答案,我会批准它!谢谢!

标签: iphone ios objective-c uiview


【解决方案1】:

不要在图层上调用 setNeedsDisplay,在视图上调用它:[myView setNeedsDisplay],这应该会导致它重新渲染视图和图层层次结构

【讨论】:

    【解决方案2】:

    这可能就像将视图的图层属性shouldRasterize 设置为NO 一样简单。

    正如 MightyLeader 所指出的,我怀疑修复是在您尝试过的事情中证明是正确的。查看不是图层:

    [myView setNeedsDisplay];
    

    【讨论】:

    • 在我尝试了几乎所有事情之前,我不会在这里提问。这当然是我尝试过的第一件事。
    • 太棒了。显然,没有人能知道这一点。也许您应该告诉我们您尝试过的所有其他事情。修复可能被埋在那里。请通过编辑将这些内容包含在问题中。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多