1

这主要是关于使用 CAGradientLayer 和 CAShapeLayer 的核心动画中的“高级”蒙版。

基本上,我有一个很好的复杂形状,由使用 CAShapeLayer s1显示的 CGPath 制成。我需要使形状的一部分变暗。所以,我创建了一个 CAGradientLayer g1,在我的线段方向上有一个渐变,一切都很好。然后,我创建另一个 CAShapeLayer s2来很好地塑造我想要调暗的部分。

我使用 CAShapeLayer s2 (g1.mask = s2)屏蔽 CAGradientLayer g1 。如果我将g1添加为子层,那就完美了。

但是,我需要使用屏蔽的 CAGradientLayer g1来屏蔽s1。当我做 s1.mask = g1 ; s1g1的普通版本屏蔽,而不是被s2屏蔽的版本。

所以基本上,我正在做或至少尝试做: CAGradientLayer1.mask = CAShapeLayer1; CAShapeLayer1.mask = CAGradientLayer1;

但它目前只是输出!CAShapeLayer1.mask = CAGradientLayer1;

希望这可以帮助。如果不够清楚,我会发布一些图像。

干杯。

4

0 回答 0