2012-07-04 20 views
13

我的书卷有一些意见是cornerRadius = 10.0masksToBounds = YESmasksToBounds和cornerRadius之间的关系是什么?

这会导致滚动我的滚动视图的性能问题。虽然我试图将每个视图的shouldRasterize设置为YES,但问题仍未解决。

但是,我知道这个问题的解决方案。那就是masksToBound设置为NO。 (masksToBound's默认值为NO) 虽然masksToBoundNO,但我的视角仍然有曲线,性能问题也解决了。

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

谢谢。

回答

23

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

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

例如:

如果设置与图像内容的CALayer,图像仍然会圆角半径边界以外的绘制。您可以通过将sublayer.masksToBounds设置为YES来解决此问题;但如果你这样做,阴影将不会显示出来,因为它们会被掩盖掉!

-2

没有任何特定的关系。实际上,当您调用角半径时,它将裁剪视图以您已经通过的半径和MaskToBound:是使其对于已裁剪的部分透明,否则它将可见...

+3

不清楚,可能也不正确。 –

相关问题