【问题标题】:CALayer: Maintaining cornerRadius on layer's contentsCALayer:在图层内容上维护cornerRadius
【发布时间】:2012-09-18 17:35:08
【问题描述】:

我一直在查看CALayer's documentation,似乎cornerRadius 只影响图层的背景,而不影响contents

有没有办法将圆角半径应用于整个 CALayer 而不会对性能造成很大影响?

我看到了有关口罩的建议,但这听起来很昂贵。我还看到了有关手动绘制contents 的建议,但我真的不知道从哪里开始。我对在上下文中渲染图像有所了解,但我不知道我应该如何将其绘制到具有角半径的CALayer 的内容视图上。我知道的最好的方法是继承CALayer 并覆盖drawInContext 方法并使用CGContextDrawImage

非常感谢所有帮助,但重申问题:“有没有办法将圆角半径应用于整个CALayer 而不会对性能造成很大影响?”

【问题讨论】:

    标签: ios calayer cornerradius


    【解决方案1】:

    cornerRadius 确实适用于整个 CALayer,并且不会对性能造成很大影响。如果您没有看到圆角的内容,那是因为您忘记将masksToBounds 设置为YES。

    【讨论】:

    • Eesh。你是对的。我想我没有做足够的研究。谢谢!虽然,这让我对为某些事情绘制 CALayer 的上下文感到好奇。
    • 好!绘图很容易,你应该学会使用它。我的书教你如何:apeth.com/iOSBook/ch15.html。如果您想要这样做,您可以轻松地通过圆角矩形形状裁剪任何绘图。但在这种情况下没有必要。
    • 请记住 maskToBounds 将删除您拥有的任何阴影效果。
    • @kabram 是的,但 OP 担心性能,在这种情况下,头脑简单的阴影无论如何都被排除在外。如果您想在圆角矩形后面显示阴影,有一些巧妙有效的方法,例如我的示例所示:github.com/mattneub/Programming-iOS-Book-Examples/blob/master/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多