因?yàn)榫W(wǎng)上的二維碼掃碼的例子很多锈至,但是很多都沒有說(shuō)界面怎么做,就做了一個(gè)供大家參考驹愚,這個(gè)是playground的demo远搪,拷貝到playground就能運(yùn)行,點(diǎn)最后一個(gè)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
效果圖:
效果圖