2

ユーザーが Web ビューで行ったズーム/スケールをプログラムでリセットすることは可能ですか? 私の問題は、Webビューが横向きにピンチズームされ、電話を回転させると、Webビューがまだズームインされ、私の場合、ポートレートモードが非常にズームインされることです.

私は試しましwebview.repaint()たが、それはまったく何もしないようです。通話できることはわかっていますwebiew.reload()が、それはサーバーとユーザーのデータプランにより多くの帯域幅を使用するだけなので、それは避けたいと思います.

を使用しTitanium Studio, build: 3.1.3.xxx3.1.3 GA Ti SDKコンパイルしていiOS 7 SDKます。

4

3 に答える 3

4

このスレッドと、これを簡単に達成する方法がなかったという事実に基づいて、モジュールを作成しました。Ti.UI.WebView を 2 つのメソッドで拡張しsetZoomLevel()ますscrollToTop()。現時点では非常に基本的な機能ですが、徐々に機能を拡張する予定です。

https://github.com/mwfire/titanium-module-extended-webview

コア コードを変更する代わりの方法です。

于 2013-09-26T13:41:31.457 に答える
0

私がやりたかった以上の答えを見つけました。Titanium SDK obj-c ファイルを実際に変更する必要がありました。

3 つのファイルを変更しました。

TiUIWebView.h

-(void)resetZoomScale; //-- added this line to define the function in the header file

TiUIWebView.m

//-- Added this function that will actually handle the resize
- (void)resetZoomScale
{
    [webview.scrollView setZoomScale:1.0]; //-- reset the scroll view back to 1
}

TiUIWebViewProxy.m

//-- Call the resetZoomScale function in TiUIWebView.m file
//-- I believe this also exposes the function to javascript
-(void)resetZoomScale:()args
{
    TiThreadPerformOnMainThread(^{[(TiUIWebView*)[self view] resetZoomScale];}, NO);
}

これで呼び出すことができmyWebView.resetZoomScale();、Web ビューで行われたピンチ/ズームはすべてリセットされ、なしまたは 1 に戻ります。

于 2013-09-25T17:01:22.450 に答える