上の閉鎖アクションを追加します。は、私は、ユーザーがUILabelをタップしたときにクロージャを追加したい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)
}
}
}
用法:
label.didTouchUpInside = { [weak self] sender in
guard let strongSelf = self else {return}
print(strongSelf)
}
が、あなたが初期化できません