HOLLOW CGPathの外端にシャドウを追加したい(これらの2つの単語はクリティカル:outside + hollow :))。CALayer.shadowによって作成された影をクリッピングする
アップルのシャドウインプリメンテーションでは、「塗りつぶした」シャドウのみを使用できます。
だから...影の内側の部分を切り取る方法は?それがレンダリングコールだった場合は、CGContextSetClip *メソッドを呼び出して、それを私が望む場所にクリップするようにしましたが、レンダリングコールでもCALayerでもないので、どうやって手に入るのか分かりません。
(マジック変数のセットとして、それを「隠し」、アップルの不幸な結果、私は推測?)
NB:これは唯一のiOSある - IIRC Mac上であなたの影を作成するために使用されるフィルタに直接アクセスすることが、あなたは手作業で独自の(任意の)影を作成することができます。
UPDATE:
私は影の唯一の内側の部分を表示するようにクリップする方法を働いた:現在の層(のクローンだ新たな層であることを、「layer.mask」に設定つまり、同じパス)、パスの塗りつぶしを完全なアルファを持つものに設定します。
これは私が試していることの反対です。したがって、アルファをフリップするマスクレイヤーを得る方法を考えれば(0は1になり、1は0になります)、私はそこにいます...
あなたと仮定すると
私はこれを試しましたが、私のレイヤーに何も起こらず、あなたは 'shadowBorderWidth'を定義しませんでした。その意味? –
私はコードを変更しました。それがまだ機能するかどうかはわからないが、おそらくそうだろう。それがうまくいかない場合は、cloneShapeLayerメソッド、CGPathの巻き取りルール、元のCGPath自体など、たくさんのデバッグがあります...これはあなたのソースコードとあなたのイメージデータに非常に依存しています - 私はあなたのためにそれをデバッグすることはできません。 – Adam
ありがとう、私はこれを試してみます:) –