在条形码扫描仪中显示边界区域

时间:2016-04-20 12:46:24

标签: ios swift

我正在尝试在我的应用程序(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)

1 个答案:

答案 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)