复制持续/快速滚动,如 Chrome ios

Replicate persistent / fast scrolling like Chrome ios

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

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

我试过:

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

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

另一种可能性是利用网络视图的 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 的批准,因为我不会提交我的应用程序,所以 hack、swizzle 等对我来说没问题。

谢谢。

所以它可能是我下面 post 中的两个组合,或者一个或另一个,但我让它工作以防有人感兴趣。

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

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

注意:iOS9 上有一个错误会导致此问题。更多信息: