ボタンに「ボトムハイライト」を作成するために、私はもともとこのコードを持っていました:
CGContextAddPath(context, highlightPath);
CGContextSetFillColorWithColor(context, [[UIColor colorWithWhite:1.0 alpha:0.5]CGColor]);
CGContextFillPath(context);
これにより、ボタンと同じスペースにハイライトが描画されますが、1 ピクセル低くなり、ボタンが透明ではないため、これはうまく機能しました。ただし、透明なものがいくつかあるので、描画領域からボタンの後ろの領域を削除する必要があります。
これを行うために使用しようとしましEOClip
たが、使用する組み合わせを理解できませんでした。ボタンのパスはbuttonPath
、ハイライト パスは同じですが 1 ピクセル低く、 と呼ばれhighlightPath
ます。ハイライトパスへの描画中に、内部での描画を停止するにはどうすればよいbuttonPath
ですか?
編集:
わかりました、これと2行目と3行目を切り替えると、形状全体が色付けされ、次のエラーが発生しますclip: empty path.
。
CGContextEOClip(context);
CGContextAddPath(context, buttonPath);
CGContextAddPath(context, highlightPath);
CGContextSetFillColorWithColor(context, [[UIColor colorWithWhite:1.0 alpha:0.5] CGColor]);
CGContextFillPath(context);