这主要是关于使用 CAGradientLayer 和 CAShapeLayer 的核心动画中的“高级”蒙版。
基本上,我有一个很好的复杂形状,由使用 CAShapeLayer s1显示的 CGPath 制成。我需要使形状的一部分变暗。所以,我创建了一个 CAGradientLayer g1,在我的线段方向上有一个渐变,一切都很好。然后,我创建另一个 CAShapeLayer s2来很好地塑造我想要调暗的部分。
我使用 CAShapeLayer s2 (g1.mask = s2)屏蔽 CAGradientLayer g1 。如果我将g1添加为子层,那就完美了。
但是,我需要使用屏蔽的 CAGradientLayer g1来屏蔽s1。当我做 s1.mask = g1 ; s1被g1的普通版本屏蔽,而不是被s2屏蔽的版本。
所以基本上,我正在做或至少尝试做: CAGradientLayer1.mask = CAShapeLayer1; CAShapeLayer1.mask = CAGradientLayer1;
但它目前只是输出!CAShapeLayer1.mask = CAGradientLayer1;
希望这可以帮助。如果不够清楚,我会发布一些图像。
干杯。