2010-09-02 11 views
13

आईपैड पर, मैं एक स्प्लिट व्यू कंट्रोलर के "विस्तार" पक्ष में एक दृश्य प्रस्तुत करता हूं जो मूल रूप से केवल UIWebView है, जो एप्लिकेशन बंडल में एक HTML फ़ाइल लोड करता है। एप्लिकेशन रोटेशन और छुपा/समर्थन के "मास्टर" पक्ष को उपयुक्त के रूप में दिखाता है।आईपैड पर UIWebView रोटेशन

जब UIWebView प्रारंभ में लैंडस्केप मोड में लोड किया गया है, तो इसकी सामग्री ठीक से "आकार" लगती है ... सामग्री स्क्रीन से लम्बा है, इसलिए आप लंबवत स्क्रॉल कर सकते हैं, लेकिन क्षैतिज नहीं। (एचटीएमएल सामग्री सीएसएस के साथ लगभग सभी पाठ है, जिसमें नीचे केवल एक छोटी ~ 300x50 छवि है।)

यदि आप स्क्रीन को पोर्ट्रेट पर घुमाते हैं, तो HTML सामग्री अभी भी ठीक आकार में प्रतीत होती है - लंबवत स्क्रॉलबार उपस्थित है, लेकिन क्षैतिज नहीं है, क्योंकि यह शुरुआत में था। परिदृश्य में वापस घूमना और सबकुछ अभी भी आड़ू है।

अभी तक, बहुत अच्छा है।

अब, अगर UIWebView प्रारंभ में पोर्ट्रेट अभिविन्यास में लोड होता है, तो सब कुछ ठीक से "आकार" भी होता है (लंबवत स्क्रॉलबार, कोई क्षैतिज नहीं)। लेकिन, यदि आप इसे परिदृश्य में घुमाते हैं, तो सामग्री अचानक क्षैतिज स्क्रॉलबार प्राप्त करती है, क्योंकि टेक्स्ट के पैराग्राफ में से एक UIWebView की चौड़ाई से अधिक व्यापक है। (नहीं संयोग से, मुझे यकीन है, लेकिन वह लंबे पैराग्राफ थोड़ा बड़ा चौड़ाई UIWebView है जब यह चित्र के रूप में उन्मुख है के लिए पूरी तरह से आकार है।)

मैं उम्मीद कर रहा था/iPad की है कि रोटेशन संभालने UIWebView कर जाएंगे इसके फ्रेम का आकार बदलना है, और जब इसका आकार बदलता है, तो इसकी HTML सामग्री को उचित रूप से आकार देने के लिए भी। (एक वेब ब्राउजर विंडो लेने और इसे कम करने के बारे में सोचें।) यह मेरे लिए क्यों नहीं हो रहा है?

मैं "स्केल पेज टू फिट" संपत्ति का उपयोग करने से बचना चाहता हूं क्योंकि टेक्स्ट गैर-निर्धारक रूप से घटता है।

+1

दूसरे दिन यह ठीक उसी समस्या का सामना करते आया हो सकता है, यह केवल तब होता है जब अनुप्रयोग में शुरू में शुरू की है लैंडस्केप ओरिएंटेशन और फिर पोर्ट्रेट मोड में घुमाया गया है, अगर पोर्ट्रेट मोड में लॉन्च किया गया है तो लैंडस्केप व्यू में घूमते समय यह ठीक से आकार देता है। मेरे मामले में यह एक शो-स्टॉपर है क्योंकि मेरी सामग्री एक नक्शा (क्लाउडमेड) है जिसमें दिखाए गए स्क्रॉल बार नहीं हैं और मानचित्र का एक अच्छा हिस्सा ऑफ़-स्क्रीन होने पर और मानचित्र के केंद्र को नए लैट/एलएनजी स्पष्ट रूप से ऑफ-सेंटर है। उम्मीद है कि कुछ कामकाज है! – EagleOfToledo

+0

@EagleOfToledo क्या आपकी सामग्री भी 'UIWebView' है? –

+0

हां, लेकिन मेरे मामले में UIWebView पूरी स्क्रीन ले रहा है (कोई SplitView/DetailView) नहीं। – EagleOfToledo

उत्तर

29

बस इस एचटीएमएल 5 व्यूपोर्ट जोड़कर इस के साथ मेरी समस्या हल हो जाती: मेरे एचटीएमएल के शीर्ष अनुभाग के

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 

, हो सकता है इस मेटा टैग की भिन्नता मदद मिल सकती है?

हालांकि मेरा मुद्दा ट्रिगर किया गया था जब मेरा ऐप लैंडस्केप मोड में शुरू हुआ था, जबकि पोर्ट्रेट मोड में आपका, यह एक आम कारण हो सकता है।

मैं भी आईपैड में WebView और आम समाधान के साथ एक और अजीब मुद्दा था कि मेटा टैग प्रतीत हो रहा है:

iPad Simulator WebView/Google Maps API Issue

+0

दिलचस्प। चूंकि इस HTML का उपयोग अन्य ब्राउज़रों/प्लेटफ़ॉर्म में बाद में किया जा सकता है, इसलिए मुझे पहले इस टैग को जोड़ने के बारे में निश्चित नहीं था। लेकिन अगर मैं इसे 'content = "प्रारंभिक-स्केल = 1.0" 'तक सरल बना देता हूं, तो यह बल्कि सौम्य होना चाहिए। धन्यवाद! –

+0

बिल्कुल सही। यह मेरे लिए आईपैड और आईफोन दोनों पर काम करता था। –

+0

धन्यवाद। यह मजाकिया है कि "चौड़ाई = डिवाइस-चौड़ाई" को हटाकर मेरी समस्या हल हो गई। – wanghq

0

यह भी डाल

[myWebView द्वारा इस से निपटने के लिए संभव है फिर से लोड];

shouldAutorotateToInterfaceOrientation विधि

में

- लेकिन यदि आप एक 3 जी कनेक्शन पर हो इस धीमी

+1

और आप कुकीज़/सत्र में सहेजे गए सभी पृष्ठ स्थिति को खो देंगे;) – tuxSlayer

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