Maskstobounds vs clipstobounds

就我而言, clipstoboundsmaskstobounds都做同样的工作。

我找不到他们之间的任何区别。

有人很好解释两者是如何不同的。

masksToBounds

任何延伸到其边界以外的图层的子图层将被剪裁到这些边界。 在这种情况下,把这个层看作是一个窗口到它的子层; 窗口边缘以外的任何东西都将不可见。 当masksToBounds为NO时,不发生剪裁。

当这个属性的值为true时,Core Animation将创build一个与图层边界相匹配的隐式剪贴遮罩,并包含任何angular落半径效果。 如果还指定了掩码属性的值,则将两个掩码相乘以获得最终的掩码值。

你可以在API Reference中获得更多信息。

clipToBounds

clipToBounds的用例更多的是部分在主视图之外的子视图。 例如,我有一个(圆形)子视图的父(矩形)UIView的边缘。 如果将clipsToBounds设置为YES,则只会显示一半的圆/子视图。 如果设置为NO,整个圆圈将显示出来。 刚遇到这个就想分享一下

有关更多信息示例链接

Clipstobounds :在clipsToBounds设置为YES的情况下,我只能看到适合在superview范围内的子视图部分。 否则,如果clipsToBounds设置为NO,我会看到整个子视图,甚至是超视图之外的部分

Maskstobounds :如果将masksToBounds属性设置为YES,则将在该边界外延伸的图层的任何子图层都剪裁到这些边界。 在这种情况下,把这个层看作是一个窗口到它的子层; 窗口边缘以外的任何东西都将不可见。 当masksToBounds为NO时,不会发生裁剪,并且任何延伸到图层边界之外的子图层都将全部可见(只要不超过任何启用了遮罩的超级图层的边缘)。