最佳答案
这是因为你的按钮的背景是透明。
当您在具有透明背景的 UIView 上设置阴影时,阴影将应用于他的所有 subview (而不是围绕 UIView 本身)。在你的例子中,你有一个 UIButton,它有一个透明背景,所以阴影被应用到它所有可见的 subview ,在这个例子中是只有它的 titleLabel。
换句话说,系统捕获 View 的非透明像素,将其着色为 shadowColor 并将该图像放置在具有 shadowOffset 的 View 下方。
所以这里有两个解决方案:
- 将按钮的背景颜色更改为其他颜色
- 直接指定shadowPath:
button.layer.shadowPath = UIBezierPath(rect: button.layer.bounds).cgPath
关于IOS 给 UIButton 添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49099013/