jry*_*edy 2 uiwebview ios swipe-gesture
我正在制作一个简单的webView iOS 7应用程序,我希望用户能够向左或向右滑动以在网页上前进或后退.就像你在iOS中的safari一样.
我认为它被称为分页 - 但我不知道如何使用它.我该如何实现呢?我是个菜鸟,所以如果你能一步一步地告诉我,我会很感激.
谢谢
我正在使用我的应用程序中的类似功能,这是我到目前为止所知道的 - 我还没有完成,但这是一种开始的方法.
首先,我假设您仅针对iOS 7进行开发 - 虽然完全有可能为iOS 6构建这个,但如果您只开发7个,则可以采用几个简洁的快捷方式.
前进/后退手势用a处理UIScreenEdgePanGestureRecognizer.您将其添加到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];
Run Code Online (Sandbox Code Playgroud)
这将添加反滑动手势.棘手的部分是invisibleScrollPreventer - 它是一个不完美的黑客,但它将避免滚动你的网页视图而不是做后退动作.(可能有更好的方法来解决这个问题,但这是我目前的解决方案.)
在您的swipeBack:方法中,您将执行以下操作:
-(void)swipeBack:(UIScreenEdgePanGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateEnded) {
if (_webView.canGoBack) {
[_webView goBack];
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以执行相同的操作来goForward:向Web视图添加方法.
在真正的诀窍是让网页,你要回(或转发)为你刷回出现在屏幕上或转发,在Safari浏览器中的iOS 7.我不是100%确定如何做到这一点(我还没有在我的应用程序中构建该功能,但我很快就会这样做)而且我猜它是一个应用了一些变暗的iOS 7 snapshotView.
根据您选择构建此项的方式,您可能还需要查看iOS 7中的自定义导航过渡.我不知道这个问题是否需要,但可能是.
祝好运!
| 归档时间: |
|
| 查看次数: |
7215 次 |
| 最近记录: |