如何在单击时删除半透明按钮上的灰色图层

时间:2016-03-17 11:28:17

标签: ios swift button uibutton

我想禁用按下按钮时出现的灰色图层。我的按钮有一个特殊的形状,其中一部分是透明的。

未按下:

Not pressed

压:

pressed

我的按钮位于UIView内。我的UIView有clearColor()背景。我已经尝试为状态正常和突出显示的按钮设置背景图像:

agendaButton.setBackgroundImage(UIImage(), forState: .Normal) agendaButton.setBackgroundImage(UIImage(), forState: .Highlighted)

我也尝试为两种状态设置相同的图像:

agendaButton.setImage(UIImage(named: "agenda"), forState: .Normal) agendaButton.setImage(UIImage(named: "agenda"), forState: .Highlighted)

我尝试将图片设置为我视图的子视图,并在顶部放置一个透明按钮:

agendaView.addSubview(UIImageView(image: UIImage(named: "agenda")))

我还尝试设置agendaButton.adjustsImageWhenHighlighted = false 并仅设置.Normale状态的图像。或者为两种状态设置图像。我还有灰色层。我想知道是否UIView变成灰色但显然不是。我将UIView背景设置为红色并使按钮变小,我可以看到按钮变成灰色而不是UIView。

我尝试以编程方式执行所有操作,并将UIButton类型设置为.Custom,将agendaButton.adjustsImageWhenHighlighted = falseagendaButton.setImage设置为agendaButton.setBackgroundImage,然后设置为.Normal,同时设置{ {1}}和.Highlighted州。同样的行为。

我想知道是否有办法停用此灰色图层。

问题是按钮的白色部分不会变成灰色,只会变成透明部分。我尝试了在SO上找到的多种解决方案,但无法找到部分透明按钮。

2 个答案:

答案 0 :(得分:2)

在IB中,您可以取消选中"突出显示调整图像"

以编程方式,您可以使用

UIButton.adjustsImageWhenHighlighted = NO;

同样适用于"已停用" 状态的选项。

答案 1 :(得分:0)

我发现了问题。我想你所有的解决方案应该对我有所帮助。 我没有看到代码底部有这两行: let color = UIColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 0.3) self.agendaButton.setBackgroundImage(self.generateImageWithColor(color), forState: .Highlighted) 我觉得我让你失去了时间。非常感谢你的帮助。