我正在尝试在我的应用程序(swift)中实现条形码扫描功能,并且我在github中找到了一个使用AVFoundation做得很好的项目。现在,我想知道如何展示边界区域。我在swift中找不到任何例子。
https://github.com/mhassanpur/tutorial-ios-barcode-scanner
修改
我在initializeScanner
中创建了capturePReviewLayer之后添加了以下几行,但是它有效,但是图层是黑色的,而不是带有红色边框的clearcolor。有什么想法吗?
let rectangle: UIBezierPath = UIBezierPath(rect: CGRectMake(0, UIScreen.mainScreen().bounds.size.height/2 - 30, UIScreen.mainScreen().bounds.size.width, 60))
UIColor.clearColor().setFill()
rectangle.fill()
UIColor.redColor().setStroke()
rectangle.lineWidth = 1
rectangle.stroke()
let circleLayer: CAShapeLayer = CAShapeLayer.init()
circleLayer.path = rectangle.CGPath
capturePreviewLayer.addSublayer(circleLayer)
答案 0 :(得分:1)
我在initializeScanner
中创建了capturePReviewLayer之后添加了以下几行,它完美无缺!
let rectangle: UIBezierPath = UIBezierPath(rect: CGRectMake(0, UIScreen.mainScreen().bounds.size.height/2 - 30, UIScreen.mainScreen().bounds.size.width, 60))
UIColor.clearColor().setFill()
rectangle.fill()
UIColor.redColor().setStroke()
rectangle.lineWidth = 1
rectangle.stroke()
let boundingLayer: CAShapeLayer = CAShapeLayer.init()
boundingLayer.path = rectangle.CGPath
boundingLayer.fillColor = UIColor.clearColor().CGColor
boundingLayer.strokeColor = UIColor.redColor().CGColor
capturePreviewLayer.addSublayer(boundingLayer)