我已经使用UIBezierPath在左上角和右上角实现了一个带圆角矩形的UIView.但之后,当我向视图添加阴影时,它不会显示阴影.如果我只是删除bezier圆角,那么阴影效果非常好.但现在只有圆角出现没有任何阴影.这是我的代码
override func drawRect(rect: CGRect)
{
super.drawRect(rect)
let shapeLayer : CAShapeLayer = CAShapeLayer(layer: centerView.layer)
shapeLayer.path = UIBezierPath(roundedRect: centerView.layer.bounds, byRoundingCorners: UIRectCorner.TopRight|UIRectCorner.TopLeft, cornerRadii: CGSizeMake(15,15)).CGPath
centerView.layer.mask = shapeLayer
centerView.layer.masksToBounds = false
centerView.layer.shadowOffset = CGSizeMake(0,-2)
centerView.layer.shadowRadius = 0.5
centerView.layer.shadowOpacity = 0.7
centerView.layer.shadowColor = UIColor(red: 0.867, green: 0.867, blue: 0.867, alpha: 1).CGColor
centerView.layer.shadowPath = UIBezierPath(roundedRect: centerView.layer.bounds, byRoundingCorners: UIRectCorner.TopRight|UIRectCorner.TopLeft, cornerRadii: CGSizeMake(15,15)).CGPath
}
Run Code Online (Sandbox Code Playgroud)
这里我覆盖了UITableViewCell的drawRect,而centerView是它的子视图.此外,我尝试为中心视图子类化UIView,这似乎也不起作用.
CALayer的mask属性和maskToBounds属性是否相互冲突?