IOS 给 UIButton 添加阴影

标签 ios swift uibutton uikit

我试图向按钮添加阴影,但阴影被添加到按钮的文本而不是整个按钮:

enter image description here

我需要使用代码来实现吗?还是尺码问题?我可以在 Storyboard 上添加阴影大小,但我不知道在哪里设置它是否应该绕过按钮

最佳答案

这是因为你的按钮的背景是透明
当您在具有透明背景的 UIView 上设置阴影时,阴影将应用于他的所有 subview (而不是围绕 UIView 本身)。在你的例子中,你有一个 UIButton,它有一个透明背景,所以阴影被应用到它所有可见的 subview ,在这个例子中是只有它的 titleLabel
换句话说,系统捕获 View 的非透明像素,将其着色为 shadowColor 并将该图像放置在具有 shadowOffset 的 View 下方。

所以这里有两个解决方案:

  1. 将按钮的背景颜色更改为其他颜色
  2. 直接指定shadowPath:
    button.layer.shadowPath = UIBezierPath(rect: button.layer.bounds).cgPath

关于IOS 给 UIButton 添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49099013/

相关文章:

ios - 在 subview 中按下按钮时,应用崩溃

swift - 如何将背景图像放到 Swift 4 上的条形按钮

ios - UIButton 子类 @IBAction 不起作用

ios - 持续检测互联网连接

ios - 使用 Storyboard时 UIView 委托(delegate)在什么阶段设置

ios - 为什么在选择日期之前 UIDatePicker 的颜色设置不会激活?

ios - 如何在 Swift 中删除字符串的最后一个路径组件?

ios - 根据 plist 中的信息隐藏/显示按钮

jquery - iOS Safari - 禁用缩放

ios - 将 UIWebView 转换为具有动态大小的 UITableViewCell