我的滚动条具有cornerRadius = 10.0masksToBounds = YES的一些 View 。

这会导致滚动我的滚动 View 时出现性能问题。尽管我尝试将每个 View 的shouldRasterize设置为YES,但问题仍未解决。

但是,我知道此问题的解决方案。那就是masksToBound被设置为NO。 (masksToBound's的默认值为NO)
尽管masksToBoundNO,但我的 View 拐角处仍然有曲线,并且性能问题也已解决。

我想知道cornerRadiusmasksToBounds之间的关系。我担心此设置会出现意料之外的问题。

谢谢你。

最佳答案

提供cornerRadius后,该代码指定用于绘制接收者背景圆角的半径。

现在,取决于masksToBounds,它确定子层是否被裁剪到接收者的边界。因此,如果将其设置为YES,则将与图层范围匹配的隐式蒙版应用于该图层,包括cornerRadius属性的效果。如果将其设置为YES并指定了mask属性,则将两个掩码相乘以获得实际的掩码值。

例如:

如果您在带有图像内容的CALayer上进行设置,则图像仍将绘制在拐角半径边界之外。您可以通过将sublayer.masksToBounds设置为YES来解决此问题;但是如果您这样做,阴影将不会显示出来,因为它们会被掩盖!

09-25 22:14