iOS 전자 서명 실현

2450 단어 iOS전자 서명
본 논문 의 사례 는 iOS 가 전자 서명 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
실현 원리
1.드래그 제스처 기록 으로 사용자 서명 경 로 를 가 져 옵 니 다.
2.사용자 가 화면 에 처음 접 촉 했 을 때 새로운 UIBezierPath 를 생 성하 고 배열 에 추가 합 니 다.접점 을 기점 으로 설정 합 니 다.손가락 드래그 과정 에서 UIBezierPath 에 선 을 추가 하고 다시 그립 니 다.연속 적 인 선 을 생 성 합 니 다.
3.손가락 이 미 끄 러 지 는 동안 계속 다시 그 려 서 서명 효 과 를 냅 니 다.
4.서명 완료,UIImage 저장 으로 전환.

class CXGSignView: UIView {

 var path: UIBezierPath?
 var pathArray: [UIBezierPath] = []

 override init(frame: CGRect) {
 super.init(frame: frame)
 self.backgroundColor = UIColor.gray
 setupSubviews()
 }


 required init?(coder aDecoder: NSCoder) {
 fatalError("init(coder:) has not been implemented")
 }


 func setupSubviews() {

 let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(panGestureRecognizerAction(_:)))
 self.addGestureRecognizer(panGestureRecognizer)

 }

 @objc func panGestureRecognizerAction(_ sender: UIPanGestureRecognizer) {
 //      
 let currentPoint = sender.location(in: self)

 if sender.state == .began {
 self.path = UIBezierPath()
 path?.lineWidth = 2
 path?.move(to: currentPoint)
 pathArray.append(path!)
 }else if sender.state == .changed {
 path?.addLine(to: currentPoint)
 }
 self.setNeedsDisplay()
 }

 //    UIBezierPath     
 override func draw(_ rect: CGRect) {

 for path in pathArray {
 //     
 UIColor.black.set()
 path.stroke()
 }
 }

 //   
 func clearSign() {
 pathArray.removeAll()
 self.setNeedsDisplay()
 }

 //   
 func undoSign() {
 guard pathArray.count > 0 else {
 return
 }
 pathArray.removeLast()
 self.setNeedsDisplay()
 }

 ///        
 func saveSignToImage() -> UIImage? {
 UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.main.scale)
 guard let context = UIGraphicsGetCurrentContext() else {
 return nil
 }
 self.layer.render(in: context)
 let image = UIGraphicsGetImageFromCurrentImageContext()
 UIGraphicsEndImageContext()
 return image
 }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기