如何删除UIButton所选的背景色?

时间:2012-01-09 15:13:41

标签: ios objective-c iphone uibutton uikit

我正在寻找一个不需要使用图像/ PNG的问题的解决方案。我正在寻找一种方法来删除UIButton的蓝色背景颜色,当它处于选定状态时,我无法找到一种方法来不使用图像。在UITableViewCell

的情况下,我基本上会尝试做类似的事情
   cell.selectionStyle = UITableViewCellSelectionStyleNone;

11 个答案:

答案 0 :(得分:109)

我有同样的问题,我通过将UIButton类型从“System”更改为“Custom”来解决它。当它是“自定义”类型时,蓝色背景颜色不会显示在选定状态。

答案 1 :(得分:18)

不幸的是,我现在离开了我的测试机器,但有两件事你可以尝试。

首先是设置以下属性:

button.adjustsImageWhenHighlighted = NO;

或取消选中Interface Builder中的“突出显示调整图像”。

如果这不像您期望的那样工作,您可以在您绑定的操作中取消选择按钮,如下所示:

- (IBAction)yourButtonAction:(id)sender {
    [sender setHighlighted:NO];
}

答案 2 :(得分:9)

将tintColor的alpha更改为零,如果iOS为5.0或更高版本,则有效

UIColor *color = [[UIColor alloc] initWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];  
button.tintColor = color;

答案 3 :(得分:5)

非常简单,在storyBoard中,选择UIButton并打开attribute inspector。现在向下滚动到View部分,将Tint属性更改为Clear Color或任何特定颜色(如果需要)。

enter image description here

答案 4 :(得分:4)

UIButton也有custom类型,我们可以在xcode中设置as-

enter image description here

通过编程方式 -

 let customButton = UIButton(type: .custom) 
  customButton.setTitle("this is Button", for: .normal)
  customButton.setTitleColor(UIColor.blue, for: .normal)
  customButton.frame = CGRect(x: 15, y: 50, width: 300, height: 500)
            self.view.addSubview( customButton)

现在已经没有 UIButton的蓝色背景颜色

答案 5 :(得分:0)

Swift版

extension UIButton {
    override public var highlighted: Bool {
        didSet {
            // clear background color when selected
            self.layer.backgroundColor = .None
        }
    }
}

答案 6 :(得分:0)

不是OP问题的直接答案,但是要在UIButton子类中删除此颜色,您可以这样做:

override func layoutSubviews() {
    tintColor = .clear
    super.layoutSubviews()
}

答案 7 :(得分:0)

在IB中将UIButton类型更改为“自定义”。

答案 8 :(得分:-1)

这对我有用。 Swift 5 iOS 13.0

let button : UIButton = {
    let btn = UIButton(type: .system)
    btn.tintColor = .clear
    return btn

}()

答案 9 :(得分:-2)

使用...

    [myButton setAdjustsImageWhenHighlighted:FALSE];

答案 10 :(得分:-2)

不确定这是否是最好的方法。但是你可以在实际按钮的顶部有一个隐形按钮或视图,然后识别单击顶部按钮/视图的时间。