2012-07-08 9 views
5

मुझे अपने UIWebView के साथ कोई समस्या है। जब दृश्य लोड होता है तो यह किसी भी अभिविन्यास ठीक में लोड होता है, पूरे पृष्ठ को पूरी तरह से भरता है।UIWebView परिदृश्य रोटेशन दृश्य को भरता नहीं है

हालांकि कहें कि क्या मैं इसे पोर्ट्रेट में लोड करता हूं, फिर डिवाइस को घुमाएं, वेबव्यू दाएं हाथ की ओर पूरी तरह से भर नहीं जाता है और मैं मेरे जीवन के लिए क्यों नहीं पता कर सकते हैं।

यह मेरे विचार किया लोड विधि

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib 

    if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait){ 

     self.measurementsWebView.frame = CGRectMake(0, 0, 320, 367); 

    }else if ([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight){ 

     self.measurementsWebView.frame = CGRectMake(0, 0, 480, 218); 
    } 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"measurements" ofType:@"png"]; 
    [measurementsWebView loadHTMLString:[NSString stringWithFormat:@"<html><body><img src=\"file://%@\"></body></html>",path] baseURL:nil]; 
    measurementsWebView.scalesPageToFit = YES; 

} 

तो मैं इंटरफ़ेस बिल्डर में लग रहा है कि मुझे पैनल चौड़ाई या जो भी आप इसे विस्तार के सेट कर सकते हैं खोजने की कोशिश कर रहा हूँ, लेकिन सभी मैं देख सकता हूँ क्या यह।

enter image description here

किसी भी मदद की बहुत होगा

उत्तर

1

सराहना इंटरफ़ेस बिल्डर में, ड्रॉप-डाउन मेनू में जहां यह कहते हैं, 'लेआउट आयत', यह क्लिक करें और 'फ्रेम आयत'।

वैकल्पिक रूप से आप आपके विचार नियंत्रक में willAnimateRotationToInterfaceOrientation: विधि ओवरराइड और समन्वय/आकार मैन्युअल रूप से सेट के रूप में आप viewDidLoad में किया जा सकता है।

+0

अजीब, यहां तक ​​कि जब मैं ऐसा करता हूं कि यह मेनू की उपस्थिति को नहीं बदल रहा है ... मुझे लगता है कि मुझे शायद xcode को पुनः स्थापित करने की आवश्यकता है। मैं अब AutototateToInterfaceOrientation चाहिए कोशिश करूँगा .. हालांकि यह क्षैतिज दृश्य फिट करने के लिए UIView फ्रेम के आकार को बदल देगा। – HurkNburkS

+0

क्षमा करें, मेरा मतलब था 'willAnimateRotationToInterfaceOrientation:' विधि। इसी तरह से आपने अपनी 'viewDidLoad' विधि में अभिविन्यास के लिए कैसे जांच की है, आप यहां वही करते हैं और दृश्य के फ्रेम को समायोजित करते हैं। – sooper

+0

इंटरफ़ेस बिल्डर के साथ आपकी समस्या के लिए, मैं आपको इस पोस्ट को पढ़ने की सलाह देता हूं [यहां] (http://stackoverflow.com/questions/9370072/xcode-4-3-not-presenting-autoresizing-panel-in-size-inspector) – sooper

4

इसके बजाय फ्रेम मैन्युअल स्थापना की, आप भी रूप में स्वत: आकार मास्क सेट कर सकते हैं:

measurementsWebView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

जो मामले आप स्क्रीन पर कोई अन्य तत्व (में WebView आकार परिवर्तन नहीं करते जो, मैं इसे ले जाएं, आपके पास measurementsWebView का आकार बदलने पर उपयोग किए गए मानों से नहीं है)। या, सीधे निब के रूप में निम्नलिखित छवि में दिखाया गया से:

auto-resize from nib

मास्क बॉक्स में लाल बार पर क्लिक करके सेट किया जा सकता स्वत: आकार बदलना बुलाया नीचे बाएँ की ओर।

3

viewDidLoad एक बार चलाया जाता है - जब दृश्य लोड होता है।

यदि आप रोटेशन होने पर फ्रेम को मैन्युअल रूप से समायोजित करना चाहते हैं, तो इसे viewDidLayoutSubviews में आकार बदलने के लिए कोड जोड़ें जिसे दृश्य घुमाने पर बुलाया जाता है।

-(void)viewDidLayoutSubviews { 

    [super viewDidLayoutSubviews]; 

    self.measurementsWebView.frame = self.view.bounds; 

} 
+0

सरल और आसान, इसके लिए धन्यवाद – peroija

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