相关疑难解决方法(0)

如何在swift中以编程方式调用手势点击UIView

我有一个UIView,并且我已添加了点击手势:

let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
tap.delegate = self
myView.addGesture(tap)
Run Code Online (Sandbox Code Playgroud)

我试图在testfile中以编程方式调用它.

sendActionForEvent
Run Code Online (Sandbox Code Playgroud)

我正在使用此功能,但它无法正常工作:

myView.sendActionForEvent(UIEvents.touchUpDown)
Run Code Online (Sandbox Code Playgroud)

它显示发送到实例的无法识别的选择器.

我怎么解决这个问题?

提前致谢

iphone uigesturerecognizer ios swift ios8

142
推荐指数
15
解决办法
23万
查看次数

如何在Swift 4中使用#selector()处理@objc推理弃用?

我正在尝试将我的项目源代码从Swift 3转换为Swift 4.一个警告Xcode给我的是我的选择器.

例如,我使用常规选择器将按钮添加到按钮,如下所示:

button.addTarget(self, action: #selector(self.myAction), for: .touchUpInside)
Run Code Online (Sandbox Code Playgroud)

这是它显示的警告:

'#selector'的参数是指'ViewController'中的实例方法'myAction()',它取决于Swift 4中不推荐使用的'@objc'属性推断

添加'@objc'以将此实例方法公开给Objective-C

现在,点击Fix错误消息对我的函数执行此操作:

// before
func myAction() { /* ... */ }

// after
@objc func myAction() { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

我真的不想重命名我的所有函数来包含@objc标记,我假设没有必要.

如何重写选择器来处理弃用?


相关问题:

xcode swift swift4

129
推荐指数
3
解决办法
4万
查看次数

标签 统计

swift ×2

ios ×1

ios8 ×1

iphone ×1

swift4 ×1

uigesturerecognizer ×1

xcode ×1