iOS Swift:从UIImageView的子类发送操作(控制事件)
如何将类似于tap事件的操作从UIImageView的子类发送到View控制器 ,我想申请UIImageView。UIImageView在其超类层次结构中没有UIControl 以下是我的代码,但不工作,因为我不知道如何实现,我需要什么iOS Swift:从UIImageView的子类发送操作(控制事件),ios,swift,uiimageview,action,uitapgesturerecognizer,Ios,Swift,Uiimageview,Action,Uitapgesturerecognizer,如何将类似于tap事件的操作从UIImageView的子类发送到View控制器 ,我想申请UIImageView。UIImageView在其超类层次结构中没有UIControl 以下是我的代码,但不工作,因为我不知道如何实现,我需要什么 class TappableImageView: UIImageView { // Initializer methods..... //------------------------------------------ private f
class TappableImageView: UIImageView {
// Initializer methods.....
//------------------------------------------
private func addTapGesture(){
let tapOnImage = UITapGestureRecognizer(target: self, action: #selector(TappableImageView.handleTapGesture(tapGesture:)))
self.isUserInteractionEnabled = true
self.addGestureRecognizer(tapOnImage)
}
//----------------------------------------------
@objc func handleTapGesture(tapGesture: UITapGestureRecognizer) {
// how can I send tap/click event to all view controllers, where I've used this image from this point.
}
}
是否有任何替代/其他解决方案适合我?我建议您使用封口来处理水龙头: 类TappableImageView:UIImageView{ 变量handleTap:->Void?=nil //--------------------- 私有函数addtap{ 让tapOnImage=UITapGestureRecognitizerTarget:self,action:Selector或AppableImageView.HandletTapGestureTap手势: self.isUserInteractionEnabled=true self.addgestureRecognitizerTaponimage } //----------------------- @objc func HandletApgestureTapsigner:UIApgestureRecognitor{ 手帕? } } 然后,我将介绍您的视图控制器,您可以使用以下方法,即在viewDidLoad方法中: 覆盖func viewDidLoad{ super.viewDidLoad yourtapableimageview.handleTap={ 打印图像视图被点击 } } 它假定您的TappableImageView存储在名为yourTappableImageView的变量中。这部分:yourTappableImageView.handleTap={printan image view was tapped}至关重要。你能给我看一下你的视图控制器的代码吗?也许你错过了什么