UIWebView:当"修饰"在链接之外时取消打开链接?

Epa*_*aga 6 cocoa-touch uiwebview uikit ios

我有一个UIWebView,文本中有链接,如果按下则打开Safari.

如果用户触摸链接,它会变暗......但是如果他想取消通过先将手指移开而按下链接,它会保持黑暗,并且在任何地方释放手指都会打开链接.

是否有某种方法可以让用户通过移开他的手指来"取消"他的"点击" - 沿着"内部触摸"按钮的行为?

Jor*_*nas 2

使用公共 SDK 无法完全满足您的要求。
我能想到的最好的答案是跟踪 UIWebView 本身的触摸开始和触摸结束事件。然后,添加一个UIWebviewDelegate, 并在此委托的接口中添加一个布尔值bLastTouchDidWander(名称纯粹是为了举例)

触地时,您设置bLastTouchDidWander为 false。

在触摸上,您可以测量触摸移动的距离。如果它移动超过设定的量,则将其视为“外部修饰”,并设置bLasTTouchDidWander为 true。

然后,对于webView:shouldStartLoadWithRequest:navigationType:的消息UIWebViewDelegate,如果bLastTouchDidWander为真,则不要点击该链接。