是指将扫描到的二维码,通过绘图技术增加边框,显示出来更容易让用户识别,增加用户体验
扫描二维码- 描绘边框代码实现
// 绘制二维码边框
func drawQRCodeFrame(qrCodeObj: AVMetadataMachineReadableCodeObject) -> () {
// 1. 创建形状图层
let shapLayer = CAShapeLayer()
shapLayer.fillColor = UIColor.clearColor().CGColor
shapLayer.strokeColor = UIColor.redColor().CGColor
shapLayer.lineWidth = 6
// 2.1 给layer, 设置一个形状路径, 让layer来展示
let corners = qrCodeObj.corners
// 2.2 拼接路径
let path = UIBezierPath()
// 2.3 定义变量
var index = 0
var point = CGPointZero
// 2.4 遍历corners
// 根据四个角对应的坐标, 转换成为一个path
for corner in corners {
// 2.5 转换
CGPointMakeWithDictionaryRepresentation(corner as! CFDictionary, &point)
// 2.6 拼接路线
if index == 0 {
// 如果第一个点, 移动路径过去, 当做起点
path.moveToPoint(point)
}else {
// 如果不是第一个点, 添加一个线到这个点
path.addLineToPoint(point)
}
index += 1
}
// 2.7 关闭路径
path.closePath()
// 2.8 给layer 的path 进行赋值
shapLayer.path = path.CGPath
// 3. 添加形状图层, 到需要展示的图层上面
layer.addSublayer(shapLayer)
}
// 移除二维码边框
func removeQRCodeFrame() -> () {
// 1. 获取子图层数组
guard let subLayers = layer.sublayers else {
return
}
// 2. 遍历图层
for subLayer in subLayers {
// 3.将添加的边框图层移除
if subLayer.isKindOfClass(CAShapeLayer) {
subLayer.removeFromSuperlayer()
}
}
}