UITapGestureRecognizer在自定义类中不起作用(不是视图控制器)

量子

我有一个自定义类Overlay,在其中添加了UIButton。单击该按钮时,应调用一个方法:

class Overlay {

func show(onView view: UIView, frame: CGRect) {
    let dismissButton = UIButton()
        dismissButton.frame = frame
        dismissButton.setTitle("Dismiss", for: .normal)
        dismissButton.setTitleColor(Project.Color.failure, for: .normal)
        dismissButton.titleLabel?.font = Project.Typography.lightFont.withSize(22)
        view.addSubview(dismissButton)

        dismissButton.isUserInteractionEnabled = true

        let tap = UITapGestureRecognizer(target: self, action: #selector(dismissBtnTapped(tap:)))
        dismissButton.addGestureRecognizer(tap)
}

@objc func dismissBtnTapped(tap: UITapGestureRecognizer) {
    print("TEST")
}

show(...)在ViewController内部调用,传递其视图和框架。

但是tapGestrueRecognizer无法正常工作。有任何想法吗?

谢谢你。

编辑:我尝试将这段代码直接放在ViewController中。然后就可以了。我不确定为什么,但是不幸的是,这对我来说不是一个可行的解决方案:/

编辑2:这就是我所说的:

let overlay = Overlay()
overlay.show(onView: self.view, frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: 150))
尼西斯·辛格

您已经在添加一个按钮,尝试向其添加一个目标而不是一个手势,并使您的叠加变量成为全局变量。

class YourControllerClass: UIViewController {
let overlay = Overlay()
...
func show(onView: UIView, frame: CGRect) {
...
dismissButton.addTarget(self, action: #selector(dismissBtnTapped(_:)), forControlEvents: .TouchUpInside)
}

func dismissBtnTapped(sender:UIButton){

}
}

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自定义子视图控制器的宽度和高度不起作用

控制器中的自定义操作在yii2中不起作用

图例标签自定义在模型控制器中不起作用

猫鼬自定义验证在控制器中不起作用

Laravel redirect()-> intended()在自定义登录控制器中不起作用

监视工厂对象在自定义指令的控制器中不起作用

自定义 UIView 中的 UITapGestureRecognizer 不起作用

UITapGestureRecognizer 在自定义 UIView 中不起作用

API 平台 - 自定义控制器/动作描述注释不起作用

创建自定义操作和控制器示例不起作用

Symfony PHP自定义异常控制器不起作用

故事板的类菜单中未列出自定义视图控制器类

For循环在Laravel控制器类中不起作用

自定义视图在Android Lollipop中不起作用

自定义UICollectionViewCell类中的按钮不起作用

自定义 UIView 类中的 UIButton 不起作用

自定义单元格Segue将数据发送到Second View控制器不起作用

案例类的自定义提取器在模式匹配中不起作用

在我的自定义视图的控制器中创建自定义IBAction

Rails逻辑在视图中起作用,但在控制器中不起作用

Symfony 4,从自定义类(不是控制器类)获取项目的根路径

为什么当不是根视图控制器时 hidesBottomBarWhenPushed 不起作用?

表格视图到自定义视图控制器?

无法将其他视图控制器与Xcode 6中的自定义可可触摸类相关联

单个视图控制器中的多个 WKwebkit 视图不起作用

如何从类本身内部初始化自定义视图控制器?

将我的自定义类的委托设置为我的视图控制器

如何从不同的控制器访问变量以使自定义下载操作起作用

将数据从导航控制器中呈现的视图传递回自定义视图 (XIB)