Aktifkan zooming / pinch di UIWebView


106

Saya memiliki UIWebView dengan file pdf. Ini bekerja dengan baik. Tapi bagaimana saya bisa mengaktifkan zooming pada file pdf?

Jawaban:



46

Anda dapat menggunakan secara webView.scalesPageToFit=YES;terprogram

Jika Anda menggunakan di xib daripada hanya click the check box "Scaling" scales Page to fit


29

Logika ini untuk memperbesar UIWebView, tidak perlu menambahkan UIWebView di UIScrollView

Satu-satunya masalah webView.scalesPageToFit = YES;adalah itu, itu akan mengubah konten awal ukuran font tetapi saya menemukan opsi lain

Tambahkan <UIWebViewDelegate, UIScrollViewDelegate>ke file .h Anda

Kreasi Anda UIWebView.

self.mWebview = [[UIWebView alloc] init];
self.mWebview.delegate = self; /// set delegate method of UIWebView
self.mWebview.frame = CGRectMake(0, 35, self.view.bounds.size.width, self.view.bounds.size.height - 80); // set frame whatever you want..
[self.mWebview setOpaque:NO];
self.mWebview.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.mWebview];

Dengan memuat file / konten HTML.

NSString* htmlString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"File Name"ofType:@"html"] encoding:NSUTF8StringEncoding error:nil];
[self.mWebview loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];


#pragma mark -
#pragma mark - Webview Delegate Methods

- (void) webViewDidFinishLoad:(UIWebView *)webView
{
    webView.scrollView.delegate = self; // set delegate method of UISrollView
    webView.scrollView.maximumZoomScale = 20; // set as you want.
    webView.scrollView.minimumZoomScale = 1; // set as you want.

    //// Below two line is for iOS 6, If your app only supported iOS 7 then no need to write this.
    webView.scrollView.zoomScale = 2;
    webView.scrollView.zoomScale = 1;
}

#pragma mark -
#pragma mark - UIScrollView Delegate Methods

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
    self.mWebview.scrollView.maximumZoomScale = 20; // set similar to previous.
}

CATATAN: Saya harus menguji pada Mac OS X - 10.9.3 dengan Xcode 5.1.1 dan iOS versi 6.1 dan yang terakhir.

Saya harap ini akan membantu Anda. :)


1
ScrollViewDidEndZooming tidak diperlukan agar saya dapat melakukan zooming dengan benar. Tidak yakin apa maksud kode itu karena hanya menyetel ulang nilai yang sama yang ditetapkan sebelumnya ke nilai yang sama persis!
Norman H

1
Ya tepatnya, mengapa bagian scrollViewDidEndZooming diperlukan? Tapi selain itu, jawaban yang luar biasa. Itu bahkan membuat halaman-halaman itu diperbesar yang tidak diperbesar hanya dengan mengatur properti "Scales page to fit".
GKK

25

Saya tahu pertanyaan ini cukup lama, tetapi untuk semua orang yang menggunakan papan cerita dan lebih memilih jawaban visual ini dia. Cukup centang kotak ini di Atribut Inspektur WebView:

masukkan deskripsi gambar di sini


18

Jika Anda ingin melakukannya secara terprogram maka gunakan

webView.scalesPageToFit = true; 

Jika Anda menggunakan storyboard maka Anda harus mencentang kotak "Scaling" menskalakan Halaman agar sesuai masukkan deskripsi gambar di sini


6

Anda HARUS menyetel scalePageToFit = YES untuk melakukan pinching dan zooming apa pun agar bekerja pada UIWebView. Ini bekerja untuk saya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.