[iOS Swift3.0] 定位二维码+绘制定位框+简单使用UIBezierPath和CAShapeLayer
来源:互联网 发布:dwg是什么软件 编辑:程序博客网 时间:2024/05/01 14:09
参考:放肆地使用UIBezierPath和CAShapeLayer画各种图形
1.获取摄像头拍摄数据
在AVCaptureMetadataOutputObjectsDelegate代理方法中处理
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) { //1获取扫描到的数据 guard let obj = metadataObjects.last as? AVMetadataMachineReadableCodeObject else{ return } //2 获取二维码位置 //2.1 转换corners 坐标 let objCorners = previewLayer.transformedMetadataObject(for: obj) //2.2 绘制图形绿框 drawCorners(objCorners: objCorners as! AVMetadataMachineReadableCodeObject)}
drawCorners(objCorners:AVMetadataMachineReadableCodeObject) 绘制方法实现
/// 绘制绿色框(Bethel曲线) /// /// - parameter objCorners: 保存了坐标的 AVMetadataMachineReadableCodeObject 对象 private func drawCorners(objCorners :AVMetadataMachineReadableCodeObject){ if objCorners.corners.isEmpty{ return } //1.新建layer let layer = CAShapeLayer() layer.lineWidth = 4 layer.strokeColor = UIColor.green.cgColor layer.fillColor = UIColor.clear.cgColor //2.创建贝塞尔路径 let path = UIBezierPath() var point = CGPoint.zero var index : Int = 0 //2.1从corners数组中开始取point坐标 point = CGPoint.init(dictionaryRepresentation: objCorners.corners[0] as! CFDictionary)! //2.2 移动到起始点 path.move(to: point) while index < objCorners.corners.count{ point = CGPoint.init(dictionaryRepresentation: objCorners.corners[index] as! CFDictionary)! index += 1 //2.3 点添加成路径线 path.addLine(to: point) } //2.4 关闭路径 path.close() //2.5 绘制路径 layer.path = path.cgPath //3.将创建好的layer添加到drawLayer上去 drawlayer.addSublayer(layer) }
0 0
- [iOS Swift3.0] 定位二维码+绘制定位框+简单使用UIBezierPath和CAShapeLayer
- 使用CAShapeLayer和UIBezierPath绘制色盘
- iOS画图-UIBezierPath和CAShapeLayer的简单使用
- ios CAShapeLayer和UIBezierPath
- IOS Swift3 使用 CLLocationManager 定位
- iOS 使用UIBezierPath, CAShapeLayer, CABasicAnimation动态绘制折线
- iOS 通过UIBezierPath和CAShapeLayer绘制圆形进度条
- UIBezierPath + CAShapeLayer的简单使用
- iOS CAShapeLayer和UIBezierPath绘图
- CAShapeLayer和UIBezierPath的使用
- 基于CAShapeLayer和UIBezierPath基本绘制
- iOS中使用UIBezierPath和CAShapeLayer画各种图形
- iOS 简单的使用UIBezierPath绘制
- iOS 简单的使用UIBezierPath绘制
- IOS CAShapeLayer CAGradientLayer UIBezierPath 使用实例
- swift3.0之后改变的语法 二维码定位
- UIBezierPath和CAShapeLayer 简单画圆
- iOS开发示例————使用CAShapeLayer&UIBezierPath绘制数据饼图
- Redis入门指南
- MVC5怎么设置默认访问页
- 二项队列分析及实现
- 开闭原则OCP
- Messenger源码解析
- [iOS Swift3.0] 定位二维码+绘制定位框+简单使用UIBezierPath和CAShapeLayer
- 金融行业风控概念及分析
- actor中!(tell)与forward的区别
- 构造方法,static,文档
- 动态规划
- codeforces363D——Renting Bikes(二分,贪心)
- 提高安卓APP开发效率、管理代码的架子(一):BaseActivity&BaseApplication
- IDE常用快捷键——微信小程序
- RocketMQ简介