UIWebView:当“touch up”在链接之外时取消打开链接?

6

我有一个UIWebView,里面有一些链接,如果用户点击它们,会打开Safari。

如果用户触摸了链接,它会变暗...但是如果他想通过先移开手指来取消按下链接,它就会保持暗淡,然后在任何地方释放手指都会打开链接。

有没有一种方法可以让用户通过移开手指来“取消”他的“点击” - 类似于“touch up inside”按钮的行为?

1个回答

2

使用公共SDK无法完全实现您所要求的功能。
我能想到的最好答案是,为UIWebView本身跟踪"touch began"和"touch ended"事件。 然后,添加一个UIWebviewDelegate,并在该代理的界面中添加一个布尔类型的bLastTouchDidWander(名称仅用于示例)

在触摸按下时,将bLastTouchDidWander设置为false。

在触摸松开时,测量触摸移动的距离。如果移动超过一定量,则视为"touch up outside",并将bLasTTouchDidWander设置为true。

然后,在UIWebViewDelegatewebView:shouldStartLoadWithRequest:navigationType:消息中,如果bLastTouchDidWander为true,则不跟随链接。


有趣的想法,我得试一试。 - Epaga
还没有尝试过,所以不能确认它是否有效,但是因为你是唯一回复的人,所以我接受了。 :) 谢谢! - Epaga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接