像Chrome ios一样复制持久/快速滚动

时间:2016-01-25 08:51:59

标签: ios webview uiscrollview webkit wkwebview

所以我使用WKWebView实现了webview。滚动很好,但是我有兴趣让它像Chrome应用程序一样。我只是不知道如何实现它。

我不知道他们是在搞乱动画持续时间,减速率还是什么。

我试过了:

currentScrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
currentScrollView.decelerationRate = UIScrollViewDecelerationRateFast;

没有真正注意到差异。我还在stackoverflow上尝试了一些建议,但它似乎完全停止了滚动动画。

另一种可能性是点击webview的CSS属性并调用:

  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;

不知道怎么称呼它。从我用于图像查看器的一些旧代码中,我按如下方式修改它,没有任何影响:

NSString *css = [[NSString alloc] initWithFormat:@"%@", @"<!DOCTYPE html>"
                 "<html lang=\"ja\">"
                 "<head>"
                 "<meta charset=\"UTF-8\">"
                 "<style type=\"text/css\">"
                 "html{margin:0;padding:0;}"
                 "body {"
                 "overflow-y: scroll;"
                 "-webkit-overflow-scrolling: touch;"
                 "margin: 0;"
                 "padding: 0;"
                 "background: clear;"
                 "}"
                 "</style>"
                 "</head>"
                 "</html>"];
[self.webView evaluateJavaScript:css completionHandler:nil];

但我并不是最好的修改这种风格。

有人有什么想法吗?建议?

我并不关心Apple的批准,因为我不能提交我的应用程序,所以黑客,调酒等对我来说没问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

所以它可能是我在下面发布的内容,或者是1或者其他内容的组合,但是如果有人感兴趣的话,我会让它工作。

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.webView.scrollView setDecelerationRate:UIScrollViewDecelerationRateNormal];
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
}

注意:iOS 9上存在导致此问题的错误。更多信息:https://stackoverflow.com/a/32843700/308315