2010-02-08 11 views
129

मैं एक UIWebView जो एक UIScrollView अंदर (scrollview एक और घटक होते हैं)UIWebView पर ज़ूम इन कैसे सक्षम कर सकता हूं जो UIScrollView के अंदर है?

मैं पर इंटरफ़ेस बिल्डर या प्रोग्रामेटिकUIWebView पर मल्टीटच दोनों को सक्षम करने की कोशिश की लेकिन यह अभी भी एचटीएमएल के लिए ज़ूम नहीं कर सकते हैं, मैं संभाल करने की जरूरत है दोनों UIScrollView और UIWebView पर ज़ूम इन करें? या कुछ भी मुझे सेट नहीं करना है?

+2

'scalesPageToFit = YES' यह काम करता है लेकिन यह आपके डिफ़ॉल्ट सामग्री आकार को बदलता है, [मेरा जवाब देखें यह आपके लिए सहायक होगा।] (Http: // stackoverflow।कॉम/प्रश्न/7134576/सक्षम-ज़ूमिंग-पिंच-ऑन-uiwebview/23971234 # 23971234) – iPatel

उत्तर

332

आप किसी भी बन्द रखो और एक UIWebView

+2

यह अच्छा है, सिवाय इसके कि अब मेरे पृष्ठ को दृश्य में फिट करने के लिए नीचे स्केल किया जा रहा है। मैं प्रदर्शित करने के लिए कोड में एक HTML पृष्ठ बना रहा हूं, और मैं इसे पिछले आकार में रखना चाहता हूं, लेकिन मेरे उपयोगकर्ताओं को चुटकी ज़ूमिंग –

+32

के साथ ज़ूम इन करने की अनुमति दें अपने HTML दस्तावेज़ के शीर्ष पर निम्न मेटा टैग जोड़ें: vocaro

+2

मैं बाहरी वेबसाइट के साथ एक ही चीज़ कैसे कर सकता हूं? यही है, मैंने प्रारंभिक ज़ूम सेट किया है, और इसके बाद उपयोगकर्ता ज़ूमिंग सक्षम है। –

3

आपको अपने नियंत्रक में ViewForZoomingInScrollView विधि को लागू करने की आवश्यकता है, या ज़ूमिंग कुछ भी नहीं करेगा। (मुझे वास्तव में पता नहीं है कि इसकी आवश्यकता क्यों होनी चाहिए, लेकिन वहां आप जा सकते हैं।)

विस्तृत जानकारी के लिए, http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html देखें।

12

ठीक पर काम करने के लिए जूम करने के लिए हाँ सेट करना होगा scalesPageToFit =, तो आप दोनों के ऊपर, लेकिन यह भी निम्नलिखित करने की ज़रूरत है। मेरे मुख्य दृश्य में एक वेब दृश्य था, और यह काम नहीं किया।

  1. उपर्युक्त के रूप में, आपको पहले मुख्य दृश्य में UIScrollView डालना होगा, फिर वेब दृश्य को स्क्रॉल व्यू में रखना होगा।
  2. उपरोक्त के रूप में, अपने दृश्य नियंत्रक में <UIScrollViewDelegate> लागू करें, इंटरफ़ेस बिल्डर में दृश्य नियंत्रक को स्क्रॉल व्यू प्रतिनिधि को खींचें, और viewForZoomingInScrollView विधि लागू करें। यह सूचक को UIScrollView (वापस myScrollView) पर वापस करना होगा।
  3. मैंने वेब दृश्य और स्क्रॉल व्यू दोनों के लिए आईबीओलेट गुण बनाए - उन्हें अपने दृश्य नियंत्रक को एनआईबी में लिंक करें।
  4. स्क्रॉल व्यू पर, विशेषता निरीक्षक पर जाएं, अपना अधिकतम और न्यूनतम ज़ूम कारक सेट करें (मैं 0.5 से 5.0 सेट करता हूं, जो अच्छी तरह से काम करता है)।
  5. वेब दृश्य पर, गुण निरीक्षक में:
  6. वेब दृश्य अनुभाग में, तराजू पेज फ़िट करने के लिए
  7. देखें अनुभाग में, मोड के लिए चयन करते हैं, "शीर्ष वाम"
  8. देखें अनुभाग में नीचे, उपयोगकर्ता इंटरैक्शन सक्षम, और एकाधिक स्पर्श सक्षम
3

जावास्क्रिप्ट के साथ आप ज़ूम स्तर को नियंत्रित कर सकते हैं, हालांकि मैंने पाया है कि ओली समाधान चिकनी नहीं दिखता है।

आप <head> में है कहते हैं:

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

4x तक ज़ूम करने के लिए, और अभी भी उपयोगकर्ता ज़ूम बदलने की अनुमति दे, सामग्री दो बार बदलने के लिए:

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"; 

चौड़ाई टॉगल करने से बहुत महत्वपूर्ण है - अन्यथा मोबाइल सफारी में गंभीर पुनर्भुगतान की बग है (ओवर-ऑप्टिमाइज़ेशन के कारण)।

आप फिर से initial-scale सेट नहीं कर सकते हैं - इसे दूसरी बार अनदेखा किया जाता है।

संबंधित मुद्दे