首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在UIWebView中向后/向前滑动手势?

在UIWebView中向后/向前滑动手势?
EN

Stack Overflow用户
提问于 2015-08-14 14:26:40
回答 4查看 15K关注 0票数 8

我的应用程序中有一个WebView。

因为它是一个选项卡应用程序,所以我无法在网站上添加返回/转发按钮。

我想往后退[向前走]。从左侧向右滑动/边缘返回…就像iOS的Safari浏览器一样。

我该怎么做呢?我想我应该用“屏幕边缘盘手势识别器”,对吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-14 14:37:50

为什么不直接用滑动手势识别器呢?

代码语言:javascript
复制
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];

// Setting the swipe direction.
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];

// Adding the swipe gesture on WebView
[webView addGestureRecognizer:swipeLeft];
[webView addGestureRecognizer:swipeRight];

- (void)handleSwipe:(UISwipeGestureRecognizer *)swipe {

if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
    NSLog(@"Left Swipe");
}

if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {
    NSLog(@"Right Swipe");   
} 

}
票数 3
EN

Stack Overflow用户

发布于 2017-03-28 20:12:25

Swift 3中接受的答案:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()

    let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(recognizer:)))
    let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(recognizer:)))
    swipeLeftRecognizer.direction = .left
    swipeRightRecognizer.direction = .right

    webView.addGestureRecognizer(swipeLeftRecognizer)
    webView.addGestureRecognizer(swipeRightRecognizer)
}

@objc private func handleSwipe(recognizer: UISwipeGestureRecognizer) {
    if (recognizer.direction == .left) {
        if webView.canGoForward {
            webView.goForward()
        }
    }

    if (recognizer.direction == .right) {
        if webView.canGoBack {
            webView.goBack()
        }
    }
}
票数 17
EN

Stack Overflow用户

发布于 2018-02-19 20:54:33

Swift 3中的答案& Swift 4

如果还有人有问题的话。这对我起了作用:

查找"didFinish“添加/替换以下代码。

代码语言:javascript
复制
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

    self.didFinish()

    webView.allowsBackForwardNavigationGestures = true

}

您需要的主要代码只是一行。它位于self.didFinish()之后,但仍在{}括号内。

webView.allowsBackForwardNavigationGestures =真

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32012428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档