我目前正在使用此自定义UIView类在特定视图上打洞。
class MessageHoleView: UIView {
var customBackgroundColor: UIColor!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func layoutSubviews() {
super.layoutSubviews()
self.backgroundColor = UIColor.clear
let radius: CGFloat = 26.0
let path = UIBezierPath(roundedRect: self.bounds, cornerRadius: 5.0)
let circleCenter = CGPoint(x: self.frame.width - 16.0 + radius, y: 4.0 + radius)
let circlePath = UIBezierPath(arcCenter: circleCenter, radius: radius, startAngle: 90.0 * .pi / 180, endAngle: 270.0 * .pi / 180, clockwise: true)
path.append(circlePath)
path.usesEvenOddFillRule = true
let fillLayer = CAShapeLayer()
fillLayer.path = path.cgPath
fillLayer.fillRule = kCAFillRuleEvenOdd
fillLayer.fillColor = self.customBackgroundColor.cgColor
fillLayer.opacity = 1.0
fillLayer.cornerRadius = 5.0
fillLayer.shadowColor = UIColor.lightGray.cgColor
fillLayer.shadowOffset = CGSize(width: CGFloat(1.0), height: CGFloat(1.0))
fillLayer.shadowOpacity = 0.5
self.layer.insertSublayer(fillLayer, at: 0)
}
}
结果显示如下:
似乎孔尚未应用到我添加的阴影部分。 如何隐藏阴影中的淡蓝色部分?