swift - Swift:addGestureRecognizer 在课堂上不起作用
问题描述
我的课:
class SelectBox {
internal static func openSelector(list:[String: String], parent:UIView){
print("iosLog HELLO")
parent.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleClick(sender:))))
}
@objc func handleClick(sender: UITapGestureRecognizer) {
print("iosLog CLICK")
}
}
设置视图:
SelectBox.openSelector(list: AppDelegate.stateList, parent: bgPlaceInto)
启动打印HELLO
后,但点击后view
我得到以下错误:
2018-07-07 18:39:12.298322+0430 Ma[971:260558] [ChatService]: SMT: 2018-07-07 18:39:12.470392+0430 Ma[971:260525] [ChatService]: RCV: 2018- 07-07 18:39:12.471851+0430 Ma[971:260591] [ChatService]: RCV: 2018-07-07 18:39:14.674675+0430 Ma[971:260392] *** NSForwarding: 警告: 对象 0x100a9fc70类 'Ma.SelectBox' 没有实现 methodSignatureForSelector: -- 前面的麻烦 无法识别的选择器 +[Ma.SelectBox handleClickWithSender:] 2018-07-07 18:39:14.675210+0430 Ma[971:260392] 无法识别的选择器 +[Ma.SelectBox handleClickWithSender:]
我如何设置点击监听器以按类查看?
谢谢
解决方案
你的openSelector
方法是静态的。静态上下文中的单词self
是指周围类型的元类型的实例。在这种情况下,SelectorBox.Type
。
显然,SelectorBox.Type
没有handleClick
办法。SelectorBox
做。
您需要使openSelector
方法非静态:
internal func openSelector(list:[String: String], parent:UIView){
print("iosLog HELLO")
parent.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleClick(sender:))))
}
现在self
指的是SelectorBox
实例。
你可以这样称呼它:
// declare this at class level:
let box = SelectorBox()
// call the method like this
box.openSelector()
编辑:你的班级应该是这样的:
class ViewControllerPage: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var bgGenderInto: UIView!
let box = SelectBox()
override func viewDidLoad() {
super.viewDidLoad()
box.openSelector(list: AppDelegate.genderList, parent: bgGenderInto)
}
}
推荐阅读
- ios - iOS 如何在少数数据表中搜索数据 Parse swift 4
- php - 如何使用php显示sql表中的行数?
- c# - bool 字段的不显眼客户端验证在 ASP.NET Core MVC 中不起作用
- typo3 - TYPO3 快速编辑页面 TSconfig
- angular6 - 带有表单内容的Angular 6文件上传
- android - 仅询问一次提示用户启用 GPS
- bash - 检查给定进程是否正在修改 UNIX 中的打开文件
- java - Maven 发布:prepare 无法提交父模块
- javascript - 通过Javascript中的角色数组过滤用户对象数组
- wpf - 在 WPF 数据网格视图标题中修复 scrollviewer