支持绘制的 UIView 子类。
如果不使用 CocoaPods 进行安装,请将 DrawView.h/.m 从类文件夹拖放到您的项目中。
要在 Swift 项目中使用 DrawView,您需要在类文件夹中将 DrawView.swift
文件拖放到您的项目中。如果您使用的是 Objective-C 版本,一些函数名已经更改以提高清晰度。DrawView 的 Swift 版本应被视为 Beta 版。
在 storyboard 中,在视图 Identity 检查器下设置视图类为 DrawView
。
在实现文件中,您可以设置绘图视图。
drawingView.strokeColor = [UIColor blackColor];
drawingView.strokeWidth = 25.0f;
由于 DrawView 是 UIView 的子类,因此可以通过更改视图的 backgroundColor
属性来更改视图的背景。
您可以通过调用以下方法之一来绘制现有的 UIBezierPath
或 CGPathRef
。
- (void)drawBezier:(UIBezierPath *)path;
- (void)drawPath:(CGPathRef)path;
要在绘制视图中动画化当前路径
- (void)animatePath;
要支持撤销,将一个带有目标的事件添加到 DrawView
实例,并将动作设置为 undoDrawing:
。请参阅示例项目以获取更多详细信息。
要启用签名模式,调用 setMode:
并将模式类型传递给它。这将为用户提供一个简单的签名 UI,以便在设备上签名。
有两种方式可以读取当前绘图视图中的内容。要么调用 imageRepresentation
,它将返回一个 UIImage,可以在邮件中稍后使用或在用户的相册中保存。或者调用 bezierPathRepresentation
,它返回一个单个的 bezier 路径,可以在您的应用程序中归档和恢复。请参见示例项目以获取更多信息。
// How to read the drawing view into an image and save to the camera roll.
UIImage *drawingImage = [drawingView imageRepresentation];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:drawingImage.CGImage orientation:ALAssetOrientationUp completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"%@",assetURL);
NSLog(@"%@",error);
}];
为了调试路径,请将 debugBox
设置为 true
。这将添加一个灰色框到当前路径的边界。