我的滚动条具有cornerRadius = 10.0
和masksToBounds = YES
的一些 View 。
这会导致滚动我的滚动 View 时出现性能问题。尽管我尝试将每个 View 的shouldRasterize
设置为YES
,但问题仍未解决。
但是,我知道此问题的解决方案。那就是masksToBound
被设置为NO
。 (masksToBound's
的默认值为NO)
尽管masksToBound
是NO
,但我的 View 拐角处仍然有曲线,并且性能问题也已解决。
我想知道cornerRadius
和masksToBounds
之间的关系。我担心此设置会出现意料之外的问题。
谢谢你。
最佳答案
提供cornerRadius
后,该代码指定用于绘制接收者背景圆角的半径。
现在,取决于masksToBounds
,它确定子层是否被裁剪到接收者的边界。因此,如果将其设置为YES
,则将与图层范围匹配的隐式蒙版应用于该图层,包括cornerRadius
属性的效果。如果将其设置为YES
并指定了mask属性,则将两个掩码相乘以获得实际的掩码值。
例如:
如果您在带有图像内容的CALayer
上进行设置,则图像仍将绘制在拐角半径边界之外。您可以通过将sublayer.masksToBounds
设置为YES
来解决此问题;但是如果您这样做,阴影将不会显示出来,因为它们会被掩盖!