我有一个UIWebView,里面有一些链接,如果用户点击它们,会打开Safari。
如果用户触摸了链接,它会变暗...但是如果他想通过先移开手指来取消按下链接,它就会保持暗淡,然后在任何地方释放手指都会打开链接。
有没有一种方法可以让用户通过移开手指来“取消”他的“点击” - 类似于“touch up inside”按钮的行为?
我有一个UIWebView,里面有一些链接,如果用户点击它们,会打开Safari。
如果用户触摸了链接,它会变暗...但是如果他想通过先移开手指来取消按下链接,它就会保持暗淡,然后在任何地方释放手指都会打开链接。
有没有一种方法可以让用户通过移开手指来“取消”他的“点击” - 类似于“touch up inside”按钮的行为?
使用公共SDK无法完全实现您所要求的功能。
我能想到的最好答案是,为UIWebView本身跟踪"touch began"和"touch ended"事件。
然后,添加一个UIWebviewDelegate
,并在该代理的界面中添加一个布尔类型的bLastTouchDidWander
(名称仅用于示例)
在触摸按下时,将bLastTouchDidWander
设置为false。
在触摸松开时,测量触摸移动的距离。如果移动超过一定量,则视为"touch up outside",并将bLasTTouchDidWander
设置为true。
然后,在UIWebViewDelegate
的webView:shouldStartLoadWithRequest:navigationType:
消息中,如果bLastTouchDidWander
为true,则不跟随链接。