これは主に、CAGradientLayer と CAShapeLayer を使用したコア アニメーションの「高度な」マスキングに関するものです。
基本的に、私は CAShapeLayer s1を使用して表示された CGPath から作成された素敵な複雑な形状を持っています。シェイプの一部を薄暗くする必要があります。それで、セグメントの方向にグラデーションを持つCAGradientLayer g1を作成します。すべて問題ありません。次に、別の CAShapeLayer s2を作成して、暗くしたいセグメントを適切に形成します。
CAShapeLayer s2 (g1.mask = s2)を使用してCAGradientLayer g1をマスクします。g1をサブレイヤーとして追加すれば完璧です。
ただし、マスクされた CAGradientLayer g1を使用してs1をマスクする必要があります。s1.mask = g1 ;を実行すると s1は、 s2でマスクされたバージョンではなく、g1の通常のバージョンでマスクされます。
基本的に、私はやっている、または少なくともやろうとしています: CAShapeLayer1.mask = CAGradientLayer1;
しかし、それは現在出力中です!CAShapeLayer1.mask = CAGradientLayer1;
お役に立てれば。十分に明確でない場合は、いくつかの画像を投稿します。
乾杯。