在 iOS 上使用 setBackgroundImage 时移除 UIButton 的阴影

Posted

技术标签:

【中文标题】在 iOS 上使用 setBackgroundImage 时移除 UIButton 的阴影【英文标题】:Remove shadow of UIButton when using setBackgroundImage on iOS 【发布时间】:2014-09-22 04:02:10 【问题描述】:

我正在创建自定义 iPhone 键盘,但 UIButton 出现问题

我正在使用此代码为我的按钮创建渐变

        let gradient = CAGradientLayer()
    gradient.frame = self.bounds
    let gradientColors: [AnyObject] = [UIColor(red: 253.0/255, green: 253.0/255, blue: 253.0/255, alpha: 1.0).CGColor, UIColor(red: 253.0/255, green: 153.0/255, blue: 53.0/255, alpha: 1.0).CGColor]
    gradient.colors = gradientColors
    self.setBackgroundImage(gradient.UIImageFromCALayer(), forState: UIControlState.Normal)

效果很好,但有一个小故障。它创建渐变,但在按钮的右侧和底部添加了一个薄阴影。

我也尝试不使用渐变,并添加了纯色,但那里有相同的阴影。

最后我用这段代码来改变背景颜色

self.backgroundColor = UIColor(red: 253.0/255, green: 253.0/255, blue: 253.0/255, alpha: 1.0)

它起作用了,阴影不再存在。但这引起了另一个问题。我的按钮在 UIButton 的 Highlighted Stat 上没有改变颜色。

有什么办法可以消除阴影,或者在突出显示状态(以及选中状态)上改变 UIButton 颜色?

我实际上尝试了任何解决方案,包括更改阴影、边框和....但没有任何效果。 :|

我也试过这个:

        if (self.state == UIControlState.Normal) 
        self.backgroundColor = UIColor(red: 153.0/255, green: 53.0/255, blue: 53.0/255, alpha: 1.0)
    
    else if (self.state == UIControlState.Reserved) 
        self.backgroundColor = UIColor(red: 253.0/255, green: 253.0/255, blue: 253.0/255, alpha: 1.0)
    

但还是没有用。

谢谢。

【问题讨论】:

【参考方案1】:

使用按钮的图层属性播放它可能有助于您去除阴影,点击此链接以使用按钮的图层属性

There's a shadow on my button

How can I remove a shadow in iPhone

【讨论】:

以上是关于在 iOS 上使用 setBackgroundImage 时移除 UIButton 的阴影的主要内容,如果未能解决你的问题,请参考以下文章

无法在 iOS 8 上使用 Google 登录 iOS SDK

如何在 iOS 10 上使用 Facebook iOS SDK

支持 iOS 11 位置权限,同时在 iOS 10 上禁止“使用时”

在 iOS 上使用 YouTube 进行直播

CLGeocoder 在 iOS8 上强制使用特定语言

如何在 iPhone/iPad 上使用 iOS5 或 iOS6 拍摄的照片上添加文本标签?