iOS swift : Send action (control event) from subclass of UIImageView

标签 ios swift uiimageview action uitapgesturerecognizer

如何从 UIImageView 的子类向 View Controller 发送操作(类似点击事件)。

Here is reference answer ,我想申请 UIImageView。 (UIImageView 在其父类(super class)层次结构中没有 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. 
    }
}

有没有可能适合我的替代/其他解决方案?

最佳答案

我建议您使用闭包来处理水龙头:

class TappableImageView: UIImageView {

   var handleTap: (() -> Void)? = nil


   //------------------------------------------
    private func addTapGesture(){
        let tapOnImage = UITapGestureRecognizer(target: self, action: #selector(TappableImageView.handleTapGesture(tapGesture:)))
        self.isUserInteractionEnabled = true
        self.addGestureRecognizer(tapOnImage)

    }


    //----------------------------------------------
    @objc func handleTapGesture(tapGesture: UITapGestureRecognizer) {
        handleTap?()
    }
}

然后我是你的 View Controller ,你可以在 viewDidLoad 方法中使用它:

override func viewDidLoad() {
    super.viewDidLoad()
    yourTappableImageView.handleTap = { 
       print("an image view was tapped")
    }
}

它假定您的 TappableImageView 存储在名为 yourTappableImageView 的变量中。

关于iOS swift : Send action (control event) from subclass of UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58490505/

相关文章:

ios - 类型 "UIImageView"的值没有成员 'rating'

ios - 通过 iOS 中定制的可穿戴设备控制 iPhone 的音乐播放器

swift - 如何表示一个忽略时间的 Date 对象?

ios - 在 App 重新进入时恢复 UIView 动画?

ios - 旋转 UIImage

iphone - 以编程方式枚举 UIViewController 的传出 Segue

ios - iOS推送通知消息

swift - 任务组 `async` 与 `spawn`

ios - 从 Firebase 数据库读取数据时出现问题

ios - 如何在 Swift 中的 Xcode 6 的 Storyboard中成功添加图像?