美文网首页
iOS 手写签名(2)

iOS 手写签名(2)

作者: _Waiting_ | 来源:发表于2021-11-03 22:35 被阅读0次

.h

#import "HanBaseView.h"

NS_ASSUME_NONNULL_BEGIN

@interface HanHandWritingView : HanBaseView
//撤销
-(void)returnBack;
///清空
-(void)clear;
///截屏
- (UIImage*)screenSnapshot;
@end

NS_ASSUME_NONNULL_END

.m

#import "HanHandWritingView.h"

@interface HanHandWritingView()

@property(nonatomic,strong)NSMutableArray *beginArr;

@property (nonatomic,strong) NSMutableArray<UIBezierPath *> *pathArr;

@end

@implementation HanHandWritingView{
    CGPoint beginPoint;
    CGPoint endPoint;
}

-(instancetype)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {
        [self setBackgroundColor:[UIColor whiteColor]];
    }
    return self;
}

-(void)drawRect:(CGRect)rect{
    [[UIColor blackColor] setStroke];
    for (int i = 0; i < self.pathArr.count; i++) {
        UIBezierPath *path = self.pathArr[i];
        [path stroke];
    }
}


-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    beginPoint = [[touches anyObject] locationInView:self];
    
    UIBezierPath *path = [UIBezierPath bezierPath];
    [path setLineWidth:3];
    [path moveToPoint:beginPoint];
    [self.pathArr addObject:path];
}

-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    CGPoint point = [[touches anyObject] locationInView:self];
    
    UIBezierPath *path = self.pathArr.lastObject;
    [path addLineToPoint:point];
    [self setNeedsDisplayInRect:self.bounds];
}

-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//    [self.array removeAllObjects];
}

#pragma mark - 公共方法
///清空
-(void)clear{
    
    [self.pathArr removeAllObjects];
    [self setNeedsDisplayInRect:self.bounds];
}
//撤销
-(void)returnBack{
    [self.pathArr removeLastObject];
    [self setNeedsDisplayInRect:self.bounds];
}
///截屏
- (UIImage*)screenSnapshot{
    UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImage * iii = [[UIImage alloc] initWithData: UIImageJPEGRepresentation(image, 0.8)];
    return iii;
}
#pragma mark - getter
-(NSMutableArray *)pathArr{
    if (!_pathArr) {
        _pathArr = [[NSMutableArray alloc] init];
    }
    return _pathArr;
}

-(NSMutableArray *)beginArr{
    if (!_beginArr) {
        _beginArr = [NSMutableArray array];
    }
    return _beginArr;
}

@end

相关文章

  • iOS 手写签名(2)

    .h .m

  • iOS手写签名

    前段时间有个朋友让帮忙写一个手写签名的功能,自己利用业余时间做了一下也算复习了下基础知识,现在整理出来写到简书上;...

  • iOS手写签名

    废话不多说,直接上代码。代码直接黏贴可用,自定义画板View。 //// MMGraphicView.h// ...

  • iOS 手写签名

    银行手写签名 .h .m

  • IOS逆向_密码学:IOS的签名机制

    1、IOS的签名机制流程; 2、IOS的签名机制流程分解; 概述:IOS的签名机制保证安装到用户手机上的A...

  • IOS 手写签名:UberSignature

    很早就有了自己写点技术博客的想法,正好最近在项目中用到了手写签名的功能,用到了Uber开源的UberSignatu...

  • [Jenkins] jenkins 签名报错

    iOS 相关 问题 xcodebuild 无效 答 问题2 签名失败 jenkins 自动打包时, 签名失败 签名...

  • BitTribeLab科普丨一文读懂数字签名

    数字签名 数字签名:数字签名被认为是对手写签名的数字化模拟。 手写签名的重要特征为: 1、自己的签名只有自己可以制...

  • ios 手写签名(生成图片)

    最近公司一个项目要用到一个手写签名的功能感觉非常有意思, 第一个想法就是类似于画板的功能, 如何实现ios画板请看...

  • iOS 手写签名实现

    最近需求有个手写实现签名的功能,需要有《删除》和《清空》操作。 下面说一下大概的实现思路:对View的DrawRe...

网友评论

      本文标题:iOS 手写签名(2)

      本文链接:https://www.haomeiwen.com/subject/avfhzltx.html