我的滚动条有一些cornerRadius = 10.0
和masksToBounds = YES
的视图。
这会导致滚动滚动视图时出现性能问题。虽然我尝试了每个视图的shouldRasterize
设置为YES
,但问题仍未解决。
但是,我知道这个问题的解决方案。这就是设置masksToBound
NO
的原因。 (masksToBound's
默认值为NO)
虽然masksToBound
是NO
,但我的观点的角落仍然有曲线,性能问题也已解决。
我想了解cornerRadius
和masksToBounds
之间的关系。我担心这个设置会出现意想不到的问题。
谢谢。
答案 0 :(得分:25)
提供cornerRadius
后,指定用于绘制接收器背景圆角的半径。
现在它取决于masksToBounds
,它确定子层是否被剪切到接收器的边界。因此,如果将其设置为YES
,则将与图层边界匹配的隐式遮罩应用于图层,包括cornerRadius
属性的效果。如果将其设置为YES
并指定了mask属性,则将两个掩码相乘以获取实际的掩码值。
例如:
如果在具有图像内容的CALayer
上进行设置,则仍会在角半径边界外绘制图像。您可以将sublayer.masksToBounds
设置为YES
来解决此问题;但如果你这样做,阴影就不会出现,因为它们会被掩盖掉!
答案 1 :(得分:-2)
没有任何特定的关系..实际上,当你调用Corner Radius时,它将裁剪你已经通过的半径的视图和MaskToBound:是的,使它对你已裁剪的那部分透明,否则它将是可见的。 ..