我想禁用按下按钮时出现的灰色图层。我的按钮有一个特殊的形状,其中一部分是透明的。
未按下:
压:
我的按钮位于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 = false
和agendaButton.setImage
设置为agendaButton.setBackgroundImage
,然后设置为.Normal
,同时设置{ {1}}和.Highlighted
州。同样的行为。
我想知道是否有办法停用此灰色图层。
问题是按钮的白色部分不会变成灰色,只会变成透明部分。我尝试了在SO上找到的多种解决方案,但无法找到部分透明按钮。
答案 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)
我觉得我让你失去了时间。非常感谢你的帮助。