如何在UI Label中添加手势识别器?

时间:2018-02-12 02:25:08

标签: ios swift uigesturerecognizer

enter image description here

我正在尝试将Tap手势添加到二月标签上,如上图所示,但我不知道为什么当我向UI标签添加手势识别器时,它不起作用,但如果我将该手势识别器分配给视图(蓝色框),它按预期工作。

我们真的可以在UI Label中添加手势识别器吗?或者我应该怎么做才能在UI标签上添加手势?

class AttendanceListVC: UIViewController {

    @IBOutlet weak var dummyView: UIView!
    @IBOutlet weak var monthLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()


        prepareTapGestureToChooseMonth()


    }

}



    func prepareTapGestureToChooseMonth() {
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(AttendanceListVC.tapFunction(sender:)))
        tapGesture.numberOfTapsRequired = 1


        monthLabel.addGestureRecognizer(tapGesture)
        dummyView.addGestureRecognizer(tapGesture)
    }

    @objc func tapFunction(sender: UITapGestureRecognizer) {


       // show pop up

    }


}

1 个答案:

答案 0 :(得分:8)

  

我们实际上可以将手势识别器添加到UI标签

当然可以。但如果您希望手势识别器执行任何事情,您还需要打开标签class TestClass: def __init__(self): self.data = 'data' def __setattr__(self, name, value): print("Attempt to edit the attribute %s" %(name)) object.__setattr__(self, name, value)

isInteractionEnabled

(但是,请注意,这可能不是一个好的用户界面。用户不会期望能够点击标签,并且它不会以生动的可见方式响应被点击。也许界面中的“二月”应该是按钮的标题。)