在iOS上使用setBackgroundImage时移除UIButton的阴影
我正在创建一个定制的iPhone键盘,但UIButton有一个问题 我用这个代码为我的按钮创建渐变在iOS上使用setBackgroundImage时移除UIButton的阴影,ios,objective-c,iphone,swift,uibutton,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
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高亮显示状态的颜色
有没有办法消除阴影,或者在高亮显示状态(以及选定状态)上更改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)
}
但同样没有起作用
谢谢。使用按钮的图层属性删除阴影可能会有帮助,请按照此链接使用按钮的图层属性