Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Swift:从UIImageView的子类发送操作(控制事件)_Ios_Swift_Uiimageview_Action_Uitapgesturerecognizer - Fatal编程技术网

iOS Swift:从UIImageView的子类发送操作(控制事件)

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

如何将类似于tap事件的操作从UIImageView的子类发送到View控制器

,我想申请UIImageView。UIImageView在其超类层次结构中没有UIControl

以下是我的代码,但不工作,因为我不知道如何实现,我需要什么

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}至关重要。你能给我看一下你的视图控制器的代码吗?也许你错过了什么