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

时间:2014-09-22 04:02:10

标签: ios objective-c iphone swift uibutton

我正在创建自定义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)

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

enter image description here

我也尝试过没有渐变,我添加了纯色,但是那里有同样的阴影。

最后我使用此代码更改背景颜色

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

它起作用,影子不再存在了。但这又引发了另一个问题。我的按钮在UIButton的突出显示统计上不会改变颜色。

有没有办法摆脱那个阴影,或者在突出显示状态(以及选择状态)下使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 个答案:

答案 0 :(得分:0)

使用图层属性按钮可能对删除阴影很有帮助,请按照此链接使用按钮的图层属性

There's a shadow on my button

How can I remove a shadow in iPhone