それが理にかなっていることを願っています。私はそれを説明しようとします。
画面に UIImageView があり、指で「描画」した後に領域を取得し、そのセクションを UImage から削除するか、選択範囲から別の UIImage を作成する方法を考えています。
私はコードを探しているわけではありません (あなたが持っていない限り =] )、それを行う方法のアイデアにすぎません。ヒントがありましたら、よろしくお願いします。
それが理にかなっていることを願っています。私はそれを説明しようとします。
画面に UIImageView があり、指で「描画」した後に領域を取得し、そのセクションを UImage から削除するか、選択範囲から別の UIImage を作成する方法を考えています。
私はコードを探しているわけではありません (あなたが持っていない限り =] )、それを行う方法のアイデアにすぎません。ヒントがありましたら、よろしくお願いします。
UIGestureRecognizer
のようなターゲットとアクションを作成する必要があります-imageIsPressed
。この-imagePressed
メソッドでは、画像を非表示にするために何かを呼び出すことができます。UIImage を UIImageView に配置し、呼び出しimageview.hidden = YES;
て画像を非表示にし、指で保持されなくなったら「NO」に戻すことをお勧めします。
あなたの質問を理解できれば、UIImageView の上に透明な UIView をサブビューとして追加すると思います。そして、それを描きます。その後、完了したらサブビューを削除/非表示にできます。
基本的に、画像のフリーハンド消去を実装したいですか?これを実現するには、コア グラフィックスとさまざまな CGContext メソッド (ブレンド モードをクリアに設定) を使用する必要があります。2 つのアプローチがありますが、どちらも の最初の部分としてイメージを描画することから始まり、drawRect
次に
1)ストロークを配列に保存し、それらすべてを画像の上にストロークします。
2) 画像上で 1 ストロークをストロークし、結果の画像を に保存しUIImage
ます。UIImage
drawRect で描画する次の画像としてこれを使用します。これは、元に戻す/やり直し機能にとっては困難です。
ユーザーが「選択した」領域をキャプチャするものを実装する必要があります (おそらくCGPath
.最後に、生成された CALayer をマスクとして UIImageView に適用します。
imageView.layer.mask = maskLayer;
これで始められることを願っています。
カスタム CALayer を描画する方法の詳細については、Quartz プログラミング ガイドを参照してください。