这主要是关于使用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;

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

干杯 .