Je travaille actuellement sur la création d'une classe UIView personnalisée pour une application sur laquelle je travaille, et elle nécessite que vous passiez un vide qui sera exécuté lors de l'événement de tap UIView. Ce que je dois être en mesure de faire, est de prendre la fonction qui a été passée à la fonction init()
, et de le stocker afin qu'il puisse être appelé plus tard. Le code sur lequel je travaille actuellement ressemble à ceci:Passage de la fonction à la variable afin qu'elle puisse être appelée plus tard
class CustomUIView: UIView {
private var _tapListener : Void;
init (tapListener:() -> Void){
//Attempt to set _tapListener variable as tap listener does not work :(
_tapListener = tapListener();
//Right now it just executes the function :(
let listener = UITapGestureRecognizer(target: self, action: #selector(callFunction));
self.addGestureRecognizer(listener)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func callFunction() {
//Call the function here
_tapListener();
}
}
Comment est-ce possible d'accomplir ce que j'essaye de faire ici?
Toute aide est grandement appréciée
Parce que le type de votre 'private var _tapListener' est faux. – matt