しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

iOS11からWebViewのスクロール減速スピードが変わった気がするので調査

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.990.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