iOS11ではWebViewのスクロールがスムーズになった気がするので調査してみました。
調査対象はWKWebViewとUIWebViewです。
各OSで、スクロールの減速スピードを表すdecelerationRateの値を比較してみました。
この値が小さいほど、スクロールが早く停止します。
import WebKit
print(WKWebView().scrollView.decelerationRate)
print(UIWebView().scrollView.decelerationRate)
print(UIScrollView().decelerationRate)
結果
結果は下の通りです。
やはりiOS11からスクロールの減速スピードが変わっていたようです。
WKWebView | UIWebView | UIScrollView | |
---|---|---|---|
iOS9 | 0.9893243312 | 0.9893243312 | 0.998 |
iOS10 | 0.9893243312 | 0.9893243312 | 0.998 |
iOS11 | 0.998 | 0.998 | 0.998 |
decelerationRateにセットできる値
余談ですが、スクロールのdecelerationRateにセットできる値は限られているようです。
試したところ0.99
か0.998
しかセットできませんでした。
let webView = UIWebView() print(webView.scrollView.decelerationRate) // → 0.998 webView.scrollView.decelerationRate = 0.1 print(webView.scrollView.decelerationRate) // → 0.99 webView.scrollView.decelerationRate = 0.999 print(webView.scrollView.decelerationRate) // → 0.998 webView.scrollView.decelerationRate = 0.994 print(webView.scrollView.decelerationRate) // → 0.998 webView.scrollView.decelerationRate = 0.993 print(webView.scrollView.decelerationRate) // → 0.99 webView.scrollView.decelerationRate = 0.989 print(webView.scrollView.decelerationRate) // → 0.99