मैं UIWebView पर ज़ूम कैसे सक्षम कर सकता हूं जो UIScrollView के अंदर है?


132

मेरे UIWebViewअंदर एक है UIScrollView(स्क्रॉलव्यू में एक और घटक है)

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


2
scalesPageToFit = YESयह काम करता है लेकिन यह आपके डिफ़ॉल्ट सामग्री आकार को बदल देता है, मेरे उत्तर को देखें यह आपके लिए उपयोगी होगा।
iPatel

जवाबों:


348

आप किसी भी pinching और एक UIWeb दृश्य पर काम करने के लिए जूमिंग के लिए scalesPageToFit = YES सेट करना होगा


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

33
निम्नलिखित मेटा टैग को अपने HTML दस्तावेज़ के सिर में जोड़ें: <मेटा नाम = 'व्यूपोर्ट' सामग्री = 'प्रारंभिक-स्केल = 1.0, अधिकतम-स्केल = 10.0' />
स्वरो

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

नमस्ते, यह सब ठीक काम पेजिंग, ZoomIn / बाहर, आदि ... लेकिन मैं उस में एक मुद्दा है। अभिविन्यास (पोर्ट्रेट और लैंडस्केप) दोनों में काम करने वाला मेरा ऐप। अब, पोर्ट्रेट में, मुझे पेज को 2-3 बार स्वाइप करना है तब मैं अगले पेज पर जा सकता हूं। लेकिन परिदृश्य में, यह ठीक काम कर रहा है। मैंने स्क्रॉलव्यू के अंदर वेबव्यू लिया है और स्क्रॉलव्यू में पेजिंग है। लेकिन जब मैंने अगले पृष्ठ पर जाने के लिए स्क्रॉल को स्वाइप करने का प्रयास किया, तो मुझे इसे अगले पृष्ठ पर (पोर्ट्रेट मोड में) जाने के लिए 2 से 3 बार स्वाइप करना होगा। उसी के संबंध में कोई विचार। सहायता के लिए धन्यवाद।
निशांत बी

सही उत्तर ... धन्यवाद
AL̲̳I

12

ठीक है, आपको उपरोक्त दोनों को करने की आवश्यकता है, लेकिन निम्न भी। मेरे पास मुख्य दृश्य में एक वेब दृश्य था, और यह काम नहीं किया।

  1. ऊपर के रूप में, आपको पहले मुख्य दृश्य में एक UIScrollView डालना होगा, फिर स्क्रॉल दृश्य में वेब दृश्य डालना होगा।
  2. ऊपर के रूप में, <UIScrollViewDelegate>अपने दृश्य नियंत्रक में लागू करें, इंटरफ़ेस बिल्डर में दृश्य नियंत्रक पर स्क्रॉल दृश्य प्रतिनिधि खींचें और viewForZoomingInScrollViewविधि लागू करें । इससे सूचक को UIScrollView पर लौटना होगा (myScrollView लौटाएं)।
  3. मैंने वेब दृश्य और स्क्रॉल दृश्य दोनों के लिए IBOutlet गुण बनाए हैं - उन्हें NIB में अपने दृश्य नियंत्रक से लिंक करें।
  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फिर से सेट नहीं कर सकते - इसे दूसरी बार अनदेखा किया गया है।


2

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.