0

UIWebviewいくつかのローカル コンテンツをロードする があります。それぞれwebViewgoBackgoForwardメソッドを起動する 2 つのボタンを接続しました。

ページをスクロールしていないときは、いずれかのボタンをタップすると、すぐにページを前後に移動できます。しかし、現在のページのスクロール中にいずれかのボタンをタップすると、現在のページのスクロールが停止するまで次のページの読み込みが開始されません。

ログインしてみました

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest...

ログは、ページのスクロールが完了するまで起動されていないことを示しています。

UIWebViews のデフォルトのスクロール動作を使用すると、遅延は非常に小さくなります。しかし、次のようにして、よりネイティブな感じになるように変更しました。

webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;

長いページをスクロールすると、スクロールが完了して次のページが読み込まれるまでに数秒かかることがあるため、問題が明らかになります。

他の誰かがこれを経験し、解決策を見つけましたか?

4

1 に答える 1

1

UIScrollview のイベント トラッキングがメイン スレッドをブロックするためです。

別の Web アクションの前に、scrollView の終了スクロール (または減速) を強制することができます。

参照: UIScrollView でスクロールをプログラムで強制停止するにはどうすればよいですか?

于 2013-08-28T08:20:22.850 に答える