Swift - 将背景颜色更改为透明

时间:2017-01-10 21:01:26

标签: swift

我注意到我的一个按钮有一个背景颜色='默认'的值

当按钮突出显示时,我想更改另一个按钮以使用“默认”背景颜色,这是我目前的代码:

@IBAction func buttonTouchUpInside(_ sender: UIButton) {

    registerBtn.setTitleColor(UIColor.white, for: UIControlState.highlighted);
}

我如何实现这一点,所以registerBtn的背景颜色基本上是透明的?

2 个答案:

答案 0 :(得分:3)

在评论中我发现:

  • 这两个按钮都是在InterfaceBuilder(IB)中创建的。
  • 每个按钮的背景颜色设置为默认或IB中的其他颜色。
  • 我们的想法是让第二个按钮具有透明背景颜色,并在突出显示第一个按钮时显示白色标题。

(我会根据需要编辑上面的内容。我不完全确定的事情是在第一个按钮不再突出显示后会发生什么。)

如果出现以上情况,您需要执行以下操作:

  • UIControlEventTouchDown或UIControlEventTouchDragEnter发生时,让第一个按钮执行操作。
  • 拥有第一个按钮,然后通过代码更改第二个按钮的背景颜色。

可能最简单的方法是通过IB ,而是通过代码。在IB中添加按钮后,为它们创建IBOutlets。然后你可以这样做:

@IBOutlet weak var firstButton: UIButton!
@IBOutlet weak var secondButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    firstButton.addTarget(self, action: #selector(highlightSecondButton), for: .touchDown)
    firstButton.addTarget(self, action: #selector(highlightSecondButton), for: .touchDragEnter)
}

func highlightSecondButton(_ sender:UIButton) {
    secondButton.setTitleColor(UIColor.white, for: UIControlState.normal)
    secondButton.backgroundColor = nil
}

答案 1 :(得分:1)

使用UIColor.clear使颜色透明。

Apple称其为“默认”而不是“清除”,这非常令人困惑。