我正在以UIView编程方式在静态方法中创建一个,并希望添加UITapGestureRecognizer它将在我的Helper类中调用另一个静态方法。
Helper.swift:
static func showLoadingPopUp(frame: CGRect) -> UIView {
let transView = UIView.init(frame: frame!)
let tapGesture = UITapGestureRecognizer(target: self, action: "transViewTapped:")
transView.addGestureRecognizer(tapGesture)
return transView
}
static func transViewTapped(gesture: UITapGestureRecognizer) {
print("Oh Tapped!!!")
}
Run Code Online (Sandbox Code Playgroud)
但它最终得到以下消息,可能是因为我的方法的静态性质。也是Helper.swift简单的 swift 类(不是UIView或UIViewController)
错误:
无法识别的选择器 +[JaClassified.Helper transViewTapped:]
如果您的类不是 的后代NSObject,您可能需要将 桥接到static funcObjective-C (因为旧式 Objective-C 选择器适用于NSObjects)。
因此,就您而言,您可以将您的Helper班级声明为
class Helper: NSObject {
...
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以transViewTapped:通过在其前面加上前缀来将您的程序桥接至 Objective-C@objc
@objc static func transViewTapped(gesture: UITapGestureRecognizer) {
...
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |