2012-03-13 10 views
3

私が直面している問題は簡単です(質問自体よりも抽象的なものではありません)。私は、イメージの残りの部分が色あせたりグレー表示されている間、イメージの領域(選択領域)を強調表示するソリューションを探しています。イメージをトリミングするときに、Photoshopなどの表示されているインタフェースとエフェクトを比較できます。イメージがグレー表示され、クロップされる領域が明確になります。選択を強調表示するためにUIViewをマスクする方法?

私の最初のアイデアは、このためにマスキングを使用することでした(したがって問題です)。しかし、これが実現可能なアプローチであるかどうか、そしてもしあれば進歩する方法がわかりません。

答えて

3

これが最善の方法かどうかはわかりませんが、うまくいくはずです。

まず、ビューのスクリーンショットを作成します。

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を作成し、マスクされたイメージをイメージとして設定し、元のビューの上に追加します。このUIImageViewbackgroundColorを好きなように設定することもできます。

EDIT:

簡単な方法は、おそらく「アルファチャネル層の背景とその濾過しレイヤーの内容を合成した結果との間で選択するためのマスクとして使用される任意の層であるview.layer.maskを、使用されるであろうバックグラウンド。" (CALayerのクラス参照)から

いくつかの文献:

UIView Class Reference

CALayer Class Reference

そしてマスクは(おそらく非表示)別のUIViewで作ることができる方法の簡単な例:

Masking a UIView