Yur*_*val 7 uitextview uigesturerecognizer ios swift ios11
因此,当用户与URL链接进行交互时,我会在UItextview中遇到崩溃.所有崩溃报告仅限iOS版本11.这看起来像iOS 9中众所周知的bug,但是没有单个报告iOS版本低于11,而且在报告中我发现了有趣的行:
UITextGestureClusterLinkInteract smallDelayRecognizer:
Run Code Online (Sandbox Code Playgroud)
里面传来与iOS 11(http://developer.limneos.net/?ios=11.0&framework=UIKit.framework&header=UITextGestureClusterLinkInteract.h).无论如何,现在我用它来修复它
@available(iOS 10.0, *)
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
UIApplication.shared.openURL(URL)
return false
}
Run Code Online (Sandbox Code Playgroud)
这不是很酷,因为你丢失了动作表菜单.我的假设是它是由3D触摸引起的(比如以前版本中的长按),但是如果我检测到3D触摸(75%,甚至是最大力的50%)并禁用此特定手势的链接交互 - 问题仍然出现.有没有人对这个特殊问题有一些经验,有更优雅的解决方法?
小智 2
我经历并解决了这个问题。
这是我的生产代码中的解决方法。.preview由于崩溃而禁用交互状态,仅此状态发生。
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool {
switch interaction {
case .presentActions, .invokeDefaultAction:
return handleLinkURL(url: URL)
case .preview:
return false
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |