私のビジネスアプリには、ユーザーがUIView
指で署名を描画して保存し(ツールバーのボタンをクリックして)、ユニットに添付できるようにする機能が必要です。これらのユニットは、作業が終了するとサーバーにアップロードされ、Base64経由でアップロードされたカメラ画像の添付ファイルをすでにサポートしているため、取得した署名をに変換したいだけですUIImage
。
まず、署名を描画するためのソリューションが必要でした。要件を満たしていると思われるAppleのサンプルコードをすぐに見つけました:GLPaint
ARCとストーリーボードを使用していて、効果音やカラーパレットなどが必要なかったため、このサンプルコードを少し変更してプロジェクトに統合しましたが、描画コードはストレートコピーです。
ビューに署名を描くことができたので、統合は成功したように見えました。したがって、次のステップは、描画された署名の保存/画像変換機能を追加することでした。
私は無限の検索を行い、同様の問題が尋ねられた数十のスレッドをロールバックしましたが、それらのほとんどはまったく同じ解決策を示していました:
(仮定)
- drawingView:
UIView
描画が行われる場所でサブクラス化されています。) <QuartzCore/QuartzCore.h>
とQuartzCore.framework
含まれていますCoreGraphics.framework
含まれていますOpenGLES.framework
含まれています- (void) saveAsImage:(UIView*) drawingView { UIGraphicsBeginImageContext(drawingView.bounds.size); [drawingView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentContext(); UIGraphicsEndImageContext(); }
最後に私の問題:このコードは常に空白の画像を返すため、私には機能しません。私はすでにiPhoneカメラで撮影した写真の添付ファイルのサポートを統合しているので、最初は画像処理コードが署名画像でも機能するはずだと思いました。
しかし..いくつかの結果のない検索の後、私はその仮定を捨て、元のGLPaintプロジェクトを取り、上記の数行と画像を表示するだけのコードを追加しましたが、これも完全に空白でした。したがって、それは、そのコードがの自己描画コンテンツで機能しないという問題か、UIView
私が見逃しているもののいずれかです。
私は基本的にこの問題についての考えがなく、何人かの人々が私を助けてくれることを願っています。
よろしくフェリックス