masksToBounds和cornerRadius之间的关系是什么?

我的滚动有一些意见是cornerRadius = 10.0masksToBounds = YES

这会导致滚动我的滚动视图的性能问题。 虽然我尝试了每个视图的shouldRasterize设置为YES ,但问题并没有解决。

但是,我知道这个问题的解决scheme。 那就是masksToBound被设置为NO 。 ( masksToBound's默认值是NO)尽pipemasksToBoundNO ,我的视图的angular仍然有曲线,性能问题也解决了。

我想知道cornerRadiusmasksToBounds之间的关系。 我担心这个设置意外的问题。

谢谢。

提供了指定用于绘制接收者背景的圆angular的半径的cornerRadius后。

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

例如:

如果您在具有图像内容的CALayer上设置该图像,图像仍将被绘制在angular半径边界之外。 你可以通过设置sublayer.masksToBoundsYES来解决这个问题。 但如果你这样做,阴影将不会显示出来,因为它们会被掩盖掉!

没有任何特定的关系船..实际上,当你调用angular半径它将裁剪视图以你已经通过半径和MaskToBound:是使它透明的部分,你已经裁剪否则它将是可见的…