如何检查按钮是否被按下?

时间:2017-03-24 23:51:46

标签: ios swift

我正在制作一个颜色选择器...如何在按下我的按钮时显示check,以便用户知道该按钮被按下了。

这是我正在使用的代码

class popUpViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    self.showAnimate()
    ASAP.tag=1
    Soon.tag=2
    Later.tag=3
    Ages.tag=4
    self.check.alpha=0

}


@IBOutlet weak var check: UIImageView!
@IBOutlet weak var Ages: UIButton!
@IBOutlet weak var Later: UIButton!
@IBOutlet weak var ASAP: UIButton!
@IBOutlet weak var Soon: UIButton!

@IBOutlet weak var mainView: UIView!
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}


func buttonClicker(sender: UIButton){
    switch sender.tag {
    case 1:
        self.check.alpha=1
    default:
        break
    }
}

这些就像是选择优先级颜色的按钮,我在它上面添加了一个UIImageView ...我想要一个隐藏的刻度,当用户点击按钮时它会显示,并且只能在一个框中看到刻度。

2 个答案:

答案 0 :(得分:2)

我只想说我个人不喜欢你接近这个问题的方式。

虽然你提出的解决方案可行(见下文),UIImage之上的UIButton并不是非常优雅......相反,我是{{1}的子类覆盖其UIButton函数以创建一个完全自定义的按钮,该按钮将显示/隐藏"检查"当用户点击它时标记。
PaintCode可以帮助解决这个问题。我强烈推荐它。

现在回答......

您可以使用draw(_ rect: CGRect)的{​​{1}}属性,如下所示:

isHidden

(请记住检查Interface Builder中的UIImageView属性,以便// Connect the image. @IBOutlet weak var checkImage: UIImageView! // When users tap the button... @IBAction func buttonTapped(_ sender: Any) { // ... unhide / show the image. checkImage.isHidden = !checkImage.isHidden } 开始隐藏。)

您还需要在故事板中调整约束,以便isHidden具有:

  • 将跟踪对齐:按钮
  • 将中心Y对齐:按钮(垂直居中)
  • 高度/宽度约束

像这样:

constraints

最终结果(忽略该标题,这只是我正在处理的应用):

result

利润。

(在旁注中,在Swift中你不需要在块/闭包之外使用UIImage
也就是说,您不需要UIImageView - 只需self即可。)

答案 1 :(得分:0)

不是设置alpha值,而是使用视图的isHidden属性来隐藏和显示它。

class popUpViewController:UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    self.showAnimate()
    ASAP.tag=1
    Soon.tag=2
    Later.tag=3
    Ages.tag=4
    self.check.isHidden = true

}


@IBOutlet weak var check: UIImageView!
@IBOutlet weak var Ages: UIButton!
@IBOutlet weak var Later: UIButton!
@IBOutlet weak var ASAP: UIButton!
@IBOutlet weak var Soon: UIButton!

@IBOutlet weak var mainView: UIView!
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}


func buttonClicker(sender: UIButton){
    switch sender.tag {
    case 1:
        self.check.isHidden = false
    default:
        break
    }
}