Swift3二维码扫码界面设计

因为网上的二维码扫码的例子很多,但是很多都没有说界面怎么做,就做了一个供大家参考,这个是playground的demo,拷贝到playground就能运行,点最后一个view上的小眼睛看效果

//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"

let view = UIView(frame:CGRect(x:0,y:0,width:300,height:600))
view.backgroundColor = UIColor.black

let width:CGFloat = 200, height:CGFloat = 200, borderWidth:CGFloat = 1.5, borderColor = UIColor.gray

let maskView = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 600))
maskView.backgroundColor = UIColor(displayP3Red: 55, green: 55, blue: 55, alpha: 0.2)

let shapLayer = CAShapeLayer()
let path = CGMutablePath()
path.addRect(CGRect(x: 0, y: 0, width: maskView.frame.width, height: (maskView.frame.height - height)/2))
path.addRect(CGRect(x: 0, y: 0, width: (maskView.frame.width - width)/2, height: maskView.frame.height))
path.addRect(CGRect(x: (maskView.frame.width + width)/2, y: 0, width: (maskView.frame.width - width)/2, height: maskView.frame.height))
path.addRect(CGRect(x: 0, y: (maskView.frame.height + height)/2, width: maskView.frame.width, height: (maskView.frame.height+height)/2))
shapLayer.path = path
maskView.layer.mask = shapLayer
path.closeSubpath()
view.addSubview(maskView)

let borderView = UIView(frame: CGRect(x: (maskView.frame.width - width)/2, y: (maskView.frame.height - height)/2, width: width, height: height))
borderView.layer.borderColor = borderColor.cgColor
borderView.layer.borderWidth = borderWidth
view.addSubview(borderView)

let cornerView = UIView(frame: CGRect(x: (maskView.frame.width - width)/2, y: (maskView.frame.height - height)/2, width: width, height: height))
let cornerShapLayer = CAShapeLayer()
let cornerPath = CGMutablePath()
let cw:CGFloat = 15, ch:CGFloat = 3
cornerView.backgroundColor = UIColor.green
cornerPath.addRect(CGRect(x: 0, y: 0, width: cw, height: ch))
cornerPath.addRect(CGRect(x: 0, y: 0, width: ch, height: cw))
cornerPath.addRect(CGRect(x: width - ch, y: 0, width: ch, height: cw))
cornerPath.addRect(CGRect(x: width - cw, y: 0, width: cw, height: ch))
cornerPath.addRect(CGRect(x: 0, y: height - cw, width: ch, height: cw))
cornerPath.addRect(CGRect(x: 0, y: height - ch, width: cw, height: ch))
cornerPath.addRect(CGRect(x: width - ch, y: height - cw, width: ch, height: cw))
cornerPath.addRect(CGRect(x: width - cw, y: height - ch, width: cw, height: ch))
cornerShapLayer.path = cornerPath
cornerView.layer.mask = cornerShapLayer
view.addSubview(cornerView)

let animView = UIView(frame: CGRect(x: (maskView.frame.width - width)/2 + height/2, y: (maskView.frame.height - height)/2 - (width/2), width: 3, height: height))
let animLayer = CAGradientLayer()
animLayer.frame = animView.bounds
animLayer.colors = [
    UIColor(displayP3Red:0,green:255,blue:0,alpha:0.1).cgColor,
    UIColor(displayP3Red:0,green:255,blue:0,alpha:1).cgColor,
    UIColor(displayP3Red:0,green:255,blue:0,alpha:1).cgColor,
    UIColor(displayP3Red:0,green:255,blue:0,alpha:0.1).cgColor
]
animLayer.transform = CATransform3DMakeRotation(CGFloat.pi / 2, 0, 0, 1)
animView.layer.addSublayer(animLayer)
view.addSubview(animView)

animView.frame.origin.y = animView.frame.origin.y + 20

view

效果图:

效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容