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

eon*_*eon 15 iphone objective-c cornerradius calayer ios

我的卷轴有一些观点cornerRadius = 10.0masksToBounds = YES.

这会导致滚动滚动视图时出现性能问题.虽然我尝试了每个视图的shouldRasterize设置YES,但问题仍未解决.

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

我想知道cornerRadius和之间的关系masksToBounds.我害怕这个设置的意外问题.

谢谢.

Par*_*iya 25

提供后cornerRadius指定用于绘制接收器背景圆角的半径.

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

例如:

如果在CALayer带有图像内容的情况下进行设置,则仍会在角半径边界外绘制图像.你可以通过设置sublayer.masksToBounds来解决这个问题YES; 但如果你这样做,阴影就不会出现,因为它们会被掩盖掉!