是否可以在 UITextView 上实现长按手势?基本上,如果用户在文本视图上点击一次,我希望他/她能够编辑文本。但是,如果他/她点击并按住文本视图(比如说两秒钟),会执行一个动作吗?如果答案是肯定的,请告诉我如何实现这一目标?
以下是根据 kchromik 的 asnwer 解决我的问题的方法:
(1) 第一步是在 ViewController 类开始之前定义以下扩展:
extension ViewController: UIGestureRecognizerDelegate { func gestureRecognizer (_ gestureRecognizer: UIGestureRecognizer, shouldRecognizerSimultaneouslyWithotherGestureRecognizer: UIGestureRecognizer) -> Bool { return true}}
(2) 第二步是将主故事板中的 UITextView Outlet 链接到 swift 代码文件:
@IBOutlet weak var testTextView: UITextView!
(3) 第三步是从对象库中将 GestureRecognizer 拖放到要在其上实现 Longpress Gesture Recognizer 的 UITextView 之上。
(4) 第四步,在viewDidLoad()下添加如下代码{
let uilpgr = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.longpress(gestureRecognizer:)))
uilpgr.minimumPressDuration = 2
testTextView.addGestureRecognizer(uilpgr)
uiplgr.delegate = self
}
(5) 最后一步是定义要与之前定义的 Longpress 手势识别器一起使用的函数:
func longpress(gestureRecognizer: UIGestureRecognizer) {
print("Long tap") // Execute what you want to do
}