繁体   English   中英

如果快速触发按钮上的长按手势,如何获取按钮文本?

[英]How to get the button text if a long press gesture on the button is triggered in swift?

我定义了一个按钮,并且在按钮上添加了一个长按手势识别器。 我知道可以通过定义如下函数来完成某些操作。 但是如何在检测到手势时获取与按钮关联的标签文本?

var removeBottomButton: UIButton = UIButton()
// set up the  button

    override func viewDidLoad() {
        super.viewDidLoad()
        self.setRemoveButton()
        let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(clearBottom))
        self.removeBottomButton.addGestureRecognizer(longGesture)
        longGesture.minimumPressDuration = 1.5
    }

    func setRemoveButton() {
        removeBottomButton = UIButton(type: UIButton.ButtonType.system)
        removeBottomButton.translatesAutoresizingMaskIntoConstraints = false
        removeBottomButton.setTitle("Item Name AAA", for: .normal)
        removeBottomButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 20)
        removeBottomButton.setTitleColor(UIColor.white, for: UIControl.State.normal)
        removeBottomButton.backgroundColor = UIColor.black
        removeBottomButton.layer.borderColor = UIColor.red.cgColor
        removeBottomButton.layer.cornerRadius = 10.0
        removeBottomButton.isUserInteractionEnabled = true
        view.addSubview(removeBottomButton)
        removeBottomButton.topAnchor.constraint(equalTo: view.bottomAnchor, constant: CGFloat(-50)).isActive = true
        removeBottomButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: CGFloat(20)).isActive = true
        removeBottomButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: CGFloat(-20)).isActive = true
        removeBottomButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: CGFloat(-20)).isActive = true
    }
//do something when the gesture is detected
    @objc func clearBottom(sender: UILongPressGestureRecognizer) {

        if sender.state == .ended {
            // how do I get the button text here? (i.e. "Item Name AAA")
        }

    }

@objc func clearBottom(sender: UILongPressGestureRecognizer) { 
    if sender.state == .ended {
       // how do I get the button text here? (i.e. "Item Name AAA")
       let button = sender.view as! UIButton
       print(button.titleLabel?.text)
    } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM