2013-02-07 26 views
32

私はの小さなの量の単純なHTML(ローカル)を1つのフルスクリーンUIWebViewに読み込むアプリケーションを構築しています。私はこのWeb表示をスクロールすることに気づいていますは、他のUIScrollViewをスクロールするのと大きく異なっていると感じます。これはパフォーマンスや応答性の問題ではありません。ウェブビューをドラッグして上下に動かしたときの勢いはどうなっているのでしょうか?それはちょうど "ネイティブ"(より良い言葉の欠如のため)非常に "感じる"。これは、糖蜜やプディングをスクロールするようなものです...ちょっと「粘着性」で、感じるように「滑らか」ではありません。なぜUIWebView *のスクロールは他のUIScrollViewのスクロールと大きく異なるのですか?

これを引き起こす原因は誰にも分かりますか?それを修正する方法はありますか、または少なくともUIWebViewのスクロールをより「ネイティブ」にする方法はありますか?

+0

どのような種類のHTMLを表示していますか?おそらくネイティブコントロールを使用してすべてを達成する方法があります。 –

+0

@JackLawrence - HTMLは実際にユーザーが生成し、サーバーから定期的に取得し、コアデータに格納します。理論的にはネイティブコントロールでビューを実装できますが、ユーザーが生成したデータを直接表示するほど柔軟性がありません。 – wxactly

答えて

53

私は同じ認識を持っています。 WebViewのscrollView減速率と関係している必要があります。ちょうどこのテストを実行し、1)疑惑を確認し、2)修正を提案する。

私は私のUIにscrollViewとのWebViewを追加しましたが、その後、次のログイン:

NSLog(@"my scroll view's decel rate is %f", self.scrollView.decelerationRate); 
NSLog(@"my web view's decel rate is %f", self.webView.scrollView.decelerationRate); 
NSLog(@"normal is %f, fast is %f", UIScrollViewDecelerationRateNormal, UIScrollViewDecelerationRateFast); 

出力は、WebViewのがより摩擦であることについての推測確認:

my scroll view's decel rate is 0.998000 
my web view's decel rate is 0.989324 
normal is 0.998000, fast is 0.990000 

をし、修正を提案している:

self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal; 
+0

滑らかな滑らかさ。完璧。ありがとう! – wxactly

+15

これは、Webビューが他のほとんどのビューよりレンダリングする方がはるかに高価であるため、これが行われることには注意してください。スクロールを「よりスティッフ」にすると、ユーザーがスクロールしたときに描画する新しい領域が少なくなることを隠すのに役立ちます。これは、特定のWebビューで処理できることが分かっている場合には変更しないほうがいいとは言いませんが、何らかの理由で*行われていることに注意し、ユースケースに問題がないことを確認する必要があります。 –

+0

これは素晴らしいです!私はそれが私のプロジェクトのために働くことを望む。ありがとうございました。 –

関連する問題