Ich möchte einen Verschluss hinzufügen, wenn Benutzer eine UILabel tippen:hinzufügen Closure Aktion auf einem UILabel
class ActionLabel: UILabel {
typealias DidTapLabel = (ActionLabel) ->()
private let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didTouchUpInside(sender:)))
var didTouchUpInside: DidTapLabel? {
didSet {
if didTouchUpInside != nil {
self.addGestureRecognizer(tapGestureRecognizer)
self.isUserInteractionEnabled = true
} else {
self.removeGestureRecognizer(tapGestureRecognizer)
self.isUserInteractionEnabled = false
}
}
}
// MARK: - Actions
@objc func didTouchUpInside(sender: ActionLabel) {
if let handler = didTouchUpInside {
handler(self)
}
}
}
Nutzung:
label.didTouchUpInside = { [weak self] sender in
guard let strongSelf = self else {return}
print(strongSelf)
}
aber scheint nicht