我正在寻找一个不需要使用图像/ PNG的问题的解决方案。我正在寻找一种方法来删除UIButton
的蓝色背景颜色,当它处于选定状态时,我无法找到一种方法来不使用图像。在UITableViewCell
:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
答案 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
或任何特定颜色(如果需要)。
答案 4 :(得分:4)
UIButton也有custom
类型,我们可以在xcode
中设置as-
或强> 通过编程方式 -
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)
不确定这是否是最好的方法。但是你可以在实际按钮的顶部有一个隐形按钮或视图,然后识别单击顶部按钮/视图的时间。