作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试创建一个带有提示的弹出窗口。以下是此代码
tipView.frame = CGRect(x: at.x - size.width, y: at.y, width: size.width, height: size.height)
let imgView = UIImageView.init(frame: CGRect(x: 0, y: 0, width: tipView.frame.width, height: tipView.frame.height))
imgView.image = #imageLiteral(resourceName: "popup.png")
tipView.mask = imgView
我用弹出窗口形状的图像遮盖了 UIView。
现在我想在 UIView 的所有 4 个边上添加阴影。我尝试了所有的方法。但是影子不可见
最佳答案
添加以下代码为 tipView 添加阴影和圆角半径。清除 backgroundColor
并使 tipView 的 clipsToBounds = false
。
let shapeLayer = CAShapeLayer()
shapeLayer.path = UIBezierPath(roundedRect: tipView.bounds, byRoundingCorners: [.topLeft, .bottomLeft, .bottomRight], cornerRadii: CGSize(width: 20, height: 20)).cgPath
shapeLayer.fillColor = UIColor.darkGray.cgColor
shapeLayer.masksToBounds = false
shapeLayer.shadowColor = UIColor.darkGray.cgColor
shapeLayer.shadowPath = shapeLayer.path
shapeLayer.shadowOffset = CGSize(width: 0, height: 2)
shapeLayer.shadowOpacity = 0.5
shapeLayer.shadowRadius = 2.0
tipView.layer.insertSublayer(shapeLayer, at: 0)
关于ios - 在蒙版 UIView 周围添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864684/
我是一名优秀的程序员,十分优秀!