iOS webView向左或向右滑动以导航

iOS webView向左或向右滑动以导航,ios,uiwebview,swipe-gesture,Ios,Uiwebview,Swipe Gesture,我正在制作一个简单的webView iOS 7应用程序,我希望用户能够向左或向右滑动,在网页上前进或后退。就像你在iOS中的safari一样 我认为这叫做分页,但我不知道如何使用它。我如何实现这一点?我是个笨蛋,如果你能一步一步地告诉我,我会很感激的 谢谢我正在我的一个应用程序中开发一个类似的功能,以下是我到目前为止所发现的-我还没有完成,但这里有一个开始的方法 首先,我假设您仅为iOS 7开发—虽然完全可以为iOS 6构建此功能,但如果您仅为iOS 7开发,则可以使用一些简洁的快捷方式 向前/

我正在制作一个简单的webView iOS 7应用程序,我希望用户能够向左或向右滑动,在网页上前进或后退。就像你在iOS中的safari一样

我认为这叫做分页,但我不知道如何使用它。我如何实现这一点?我是个笨蛋,如果你能一步一步地告诉我,我会很感激的


谢谢

我正在我的一个应用程序中开发一个类似的功能,以下是我到目前为止所发现的-我还没有完成,但这里有一个开始的方法

首先,我假设您仅为iOS 7开发—虽然完全可以为iOS 6构建此功能,但如果您仅为iOS 7开发,则可以使用一些简洁的快捷方式

向前/向后手势由
UIScreenedGepangestureRecognitor处理。将其添加到web视图,如下所示:

    UIScreenEdgePanGestureRecognizer *bezelSwipeGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(swipeBack:)];
bezelSwipeGestureRecognizer.edges = UIRectEdgeLeft;
bezelSwipeGestureRecognizer.delegate = self;
[self.view addGestureRecognizer:bezelSwipeGestureRecognizer];

UIView *invisibleScrollPreventer = [UIView new];
invisibleScrollPreventer.frame = CGRectMake(0, 0, 10, self.view.frame.size.height);
[self.view addSubview:invisibleScrollPreventer];
这将添加回刷手势。棘手的部分是InvisibleSrollPreventor——这是一个不完美的黑客,但它可以避免滚动您的web视图,而不是执行后退操作。(可能有更好的方法来处理这个问题,但这是我目前的解决方案。)

swipeBack:
方法中,您将执行以下操作:

-(void)swipeBack:(UIScreenEdgePanGestureRecognizer *)recognizer
{
    if (recognizer.state == UIGestureRecognizerStateEnded) {
        if (_webView.canGoBack) {
            [_webView goBack];
        }
    }
}
您可以做同样的事情,向web视图添加
goForward:
方法

真正的诀窍是当你向前或向后滑动时,让你要返回(或向前)的网页出现在屏幕上,就像iOS 7中的Safari一样。我不是100%确定如何做到这一点(我还没有在我的应用程序中构建该功能,但我很快就会构建),我猜这是一款应用了一些暗调的iOS 7

根据您选择的构建方式,您可能还希望签出。我不知道这个问题是否需要这样做,但可能需要这样做

祝你好运

您可以尝试以下方法:

override func viewDidLoad() {
    super.viewDidLoad()
    let url = NSURL(string: "https://www.whatever.com")
    let requestObj = NSURLRequest(URL: url!)
    myWebView.loadRequest(requestObj)



    //swipe left or right to go back or foward 
    var leftSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))
    var rightSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))

    leftSwipe.direction = .Left
    rightSwipe.direction = .Right

    view.addGestureRecognizer(leftSwipe)
    view.addGestureRecognizer(rightSwipe)


}



//swipe left to go forward
func handleSwipes(sender:UISwipeGestureRecognizer) {
    if (sender.direction == .Left) {
        myWebView.goForward()

    }
//swipe right to go backward
    if (sender.direction == .Right) {
         myWebView.goBack()

    }


}
var webView: WKWebView!

 override func viewDidLoad() {
       super.viewDidLoad()

        let url = URL(string: "https://yourwebsite.com")!
        webView.load(URLRequest(url: url))
        webView.allowsBackForwardNavigationGestures = true  //so easy!
    }

    override func loadView() {
        webView = WKWebView()
        webView.navigationDelegate = self
        view = webView
    }

WebVIEW HTML或PDF中的内容是什么?考虑使用<代码> UINavigationController < /代码>。它已经支持从开箱即用的从左向右滑动,所以您只需要添加对反向滑动的支持。这个答案应该让你开始:好的,谢谢!我应该知道这一点,但是我应该把这些代码片段放在哪里呢。m或.h?所有这些代码都会放在你的.m文件中-如果你对.h和.m文件感到困惑,请检查这个堆栈溢出问题:委托是为了什么?在
NSURL(字符串:)
构造函数中用
替换引号字符(这将修复代码高亮显示)。欢迎使用Stack Overflow!虽然此代码可能会回答此问题,但最好包含一些上下文,解释其工作原理和使用时间。从长远来看,仅代码回答没有用处。