我的业务应用程序需要一项功能,让用户UIView
用手指在 a 上绘制签名并保存(通过单击工具栏中的按钮),以便将其附加到单元上。这些单元将在工作完成后上传到服务器,并且已经支持通过 Base64 上传的相机图片附件,所以我只想将签名转换为UIImage
.
首先,我需要一个解决方案来绘制签名,我很快从 Apple 找到了一些似乎符合我要求的示例代码:GLPaint
由于我使用 ARC 和 Storyboards 并且不想要声音效果和调色板等,因此我将这个示例代码集成到我的项目中,并稍作修改,但绘图代码是直接复制的。
集成似乎是成功的,因为我能够在视图上绘制签名。因此,下一步是为绘制的签名添加保存/图像转换功能。
我进行了无休止的搜索并滚动了数十个具有类似问题的线程,其中大多数都指向完全相同的解决方案:
(假设)
- 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
s 上的自绘内容,要么是我缺少的任何内容。
我对这个问题基本上没有想法,希望有人能帮助我。
最好的问候菲利克斯