这主要是关于使用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;
希望这会有所帮助。如果不够清楚,我会发布一些图片。
干杯。