在 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