UIScrollView içindeki UIWebView'da yakınlaştırmayı nasıl etkinleştirebilirim?


132

UIWebViewİçinde bir olan var UIScrollView(scrollview başka bir bileşen içerir)

Ben çok noktalı dokunma hem etkinleştirmek için çalıştı Interface Builder veya Programlı üzerinde UIWebViewama yine de html için zum yapamaz, ben de hem zoom işlemek gerekiyor UIScrollViewve UIWebView? Ya da ayarlamam gereken bir şey?


2
scalesPageToFit = YESişe yarıyor ama varsayılan içerik boyutunuzu değiştiriyor, Cevabıma bakın bu size yardımcı olacaktır.
iPatel

Yanıtlar:


348

Bir UIWebView üzerinde çalışmak için herhangi bir sıkıştırma ve yakınlaştırma için scalesPageToFit = EVET ayarlamanız GEREKİR


2
Bu iyi, ancak şu anda sayfam görünüme sığacak şekilde küçültülüyor. Görüntülenecek kodda bir html sayfası oluşturuyorum ve önceki boyutta kalmasını istiyorum, ancak kullanıcılarımın sıkıştırarak yakınlaştırma ile yakınlaştırmasına izin veriyorum
Dan F

33
Aşağıdaki meta etiketi HTML belgenizin başına ekleyin: <meta name = 'viewport' content = 'initial-scale = 1.0, maximum-scale = 10.0' />
vocaro

2
Aynı şeyi harici bir web sitesinde nasıl yapabilirim? Yani, ilk yakınlaştırmayı ayarlıyorum ve bundan sonra kullanıcı yakınlaştırması etkinleştiriliyor.
William Jockusch

Merhaba, Hepsi iyi çalışıyor Çağrı, ZoomIn / Out, vb ... Ama bunda bir sorun var. Uygulamam her iki yönde de çalışıyor (Dikey ve Yatay). Şimdi, dikeyde, sayfayı 2-3 kez kaydırmam gerekiyor, sonra bir sonraki sayfaya geçebilirim. Ancak manzarada iyi çalışıyor. Kaydırma görünümünün içinde web görünümü aldım ve kaydırma görünümünde sayfalama var. Ancak bir sonraki sayfaya gitmek için kaydırmayı kaydırmayı denediğimde, sonraki sayfaya gitmek için (dikey modda) 2 ila 3 kez kaydırmam gerekiyor. Bununla ilgili herhangi bir fikir. Yardım için teşekkürler.
Nishant B

mükemmel cevap ... Teşekkürler
AL̲̳I

12

Tamam, hem yukarıdakileri hem de aşağıdakileri yapmanız gerekiyor. Ana görünümde bir web görünümüm vardı ve bu işe yaramadı.

  1. Yukarıdaki gibi, önce ana görünüme bir UIScrollView koymanız, ardından web görünümünü kaydırma görünümüne koymanız gerekir.
  2. Yukarıdaki gibi, <UIScrollViewDelegate>görünüm denetleyicinizde uygulayın, kaydırma görünümü temsilcisini Arabirim Oluşturucu'daki görünüm denetleyicisine sürükleyin ve viewForZoomingInScrollViewyöntemi uygulayın. Bu, işaretçiyi UIScrollView'a döndürmelidir (myScrollView'a dönün).
  3. Hem web görünümü hem de kaydırma görünümü için IBOutlet özelliklerini oluşturdum - bunları NIB'de görünüm denetleyicinize bağlayın.
  4. Kaydırma Görünümünde, Nitelik Denetçisi'ne gidin, Maks ve Min yakınlaştırma faktörlerinizi ayarlayın (iyi çalışan 0,5 ila 5,0 ayarladım).
  5. Web Görünümünde, Öznitelik Denetçisinde:
  6. Web Görünümü bölümünde Sayfaları Sığacak Şekilde Ölçeklendir'i seçin.
  7. Görünüm bölümünde Mod'u seçin, "Sol Üst"
  8. Alt kısımdaki Görünüm bölümünde, Kullanıcı Etkileşimi Etkin ve Çoklu Dokunma Etkin'i işaretleyin.

3

Bulduğum oly çözüm düzgün görünmese de, JavaScript ile yakınlaştırma seviyesini kontrol edebilirsiniz.

Diyelim ki içinde <head>:

<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">

4x'e yakınlaştırmak ve yine de kullanıcının yakınlaştırmayı değiştirmesine izin vermek için içeriği iki kez değiştirin:

var vp = document.getElementById('vp');
vp.content = "width=767,minimum-scale=4.0,maximum-scale=4.0,user-scalable=yes";
vp.content = "width=768,minimum-scale=0.25,maximum-scale=10.0,user-scalable=yes";

Genişliği değiştirmek çok önemlidir - aksi takdirde Mobile Safari'de ciddi yeniden boyama hataları vardır (aşırı optimizasyon nedeniyle).

Yeniden ayarlayamazsınız initial-scale- ikinci kez yok sayılır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.