これが最善の方法かどうかはわかりませんが、うまくいくはずです。
まず、ビューのスクリーンショットを作成します。
UIGraphicsBeginImageContextWithOptions(captureView.bounds.size, view.opaque, 0.0);
[captureView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
このコードは、「盗まれた」と少しここから変更されます。 Low quality of capture view context on iPad
次に、あなたは、元の(スクリーンショット)と同じ寸法のグレースケールマスク画像を作成することができます。
How to Mask an Imageの簡略指示&に従います。
次に、UIImageView
を作成し、マスクされたイメージをイメージとして設定し、元のビューの上に追加します。このUIImageView
のbackgroundColor
を好きなように設定することもできます。
EDIT:
簡単な方法は、おそらく「アルファチャネル層の背景とその濾過しレイヤーの内容を合成した結果との間で選択するためのマスクとして使用される任意の層であるview.layer.mask
を、使用されるであろうバックグラウンド。" (CALayerのクラス参照)から
いくつかの文献:
UIView Class Reference
CALayer Class Reference
そしてマスクは(おそらく非表示)別のUIViewで作ることができる方法の簡単な例:
Masking a UIView