2013-08-31 13 views
9

मैं एक UIWebView में एक PDF डिवाइस की पूरी स्क्रीन का उपयोग, स्थिति पट्टी और ऊपर पट्टी को छोड़कर प्रदर्शित करने के लिए कोशिश कर रहा हूँ। अब तक, मैंने अपनी .h फ़ाइल में IBOutlet UIWebview *webview; बनाया है। मैं अपने स्टोरीबोर्ड में वेबव्यू जुड़ा हुआ है और मेरी .m फ़ाइल में निम्न कोड लिखा है:UIWebView पूर्ण स्क्रीन आकार

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 

    webview.scalesPageToFit = YES; 
    webview.autoresizesSubviews = YES; 
    webview.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
    [webview setBackgroundColor:[UIColor clearColor]]; 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Chart" ofType:@"pdf"]; 
    NSURL *targetURL = [NSURL fileURLWithPath:path]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
    [webview loadRequest:request]; 

    [self.view addSubview:webview]; 

} 

पीडीएफ ठीक से दिखाई देते मेरी 3.5 इंच में, लेकिन मेरे 4 इंच की स्क्रीन में, नीचे कट जाता है। जब मैं परिदृश्य दृश्य में घुमाता हूं तो यह और भी ध्यान देने योग्य है। लगभग 33% स्क्रीन का उपयोग नहीं किया जाता है। मैं इसे कैसे ठीक करूं? मुझे पता है कि ऊपर दिए गए मेरे कोड में UIWebview आयामों के साथ कुछ करना होगा (webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];), लेकिन क्या एक विशिष्ट स्क्रीन ऊंचाई और चौड़ाई निर्दिष्ट किए बिना, पूरी स्क्रीन पर वेबव्यू को प्रदर्शित करने का एक बेहतर तरीका है?

उत्तर

29

एक सस्ते बात अधिभावी में वेबव्यू के फ्रेम स्थापित करने के लिए किया जाएगा करने के लिए - (शून्य) viewDidLayoutSubviews

- (void)viewDidLayoutSubviews { 
    webView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 
} 

यह यहां क्या कर का लाभ, आकार और देखने के उन्मुखीकरण पहले से ही है कि यहां निर्धारित किया गया है, और आप एक सटीक माप प्राप्त कर सकते हैं।

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.webview = [[UIWebView alloc] init]; 
    // More setting your webview here 

    // Set webview to full screen 
    self.view = self.webview; 

    [self.webview loadRequest:aRequest]; 
} 
+0

मैं इस कोड जोड़ा है, लेकिन उसमें कोई त्रुटि है: असंगत प्रकार 'int' से 'CGRect' (उर्फ 'struct CGRect') ... –

+1

मैं बस किया नियत "- (शून्य) viewDidLoad { [सुपर व्यूडिडलोड]; \t वेबव्यू = [[UIWebView alloc] initWithFrame: CGRectMake (0, 0, self.view.frame.size.width, self.view.frame.size.height)]; और अब यह काम करता है! धन्यवाद! –

+0

मामले किसी में सोच रहा था, कारण यह काम किया है, क्योंकि आप CGRectMake को CGRectmake सही है, नहीं है क्योंकि यह initWithFrame में बदल गया था। –

2

iOS6, 7 और विभिन्न आकारों की अनुकूलता के साथ काम कर सिर दर्द का एक बहुत कुछ करने के बाद, मैं इस एक का उपयोग करें विकल्प चेक नहीं किया, सब विवश मान 0 कर रहे हैं:

enter image description here

और अपने हम

enter image description here

बिना ऑटो लेआउट

बदलें वेबव्यू स्वत: आकार बदलना कनेक्शन::

enter image description here

+1

जब आप नियंत्रक की दृश्य संपत्ति को प्रतिस्थापित कर रहे हैं, तो आप लोडव्यू विधि में self.view असाइन करके इसे पहले स्थान पर बनाने से रोक सकते हैं। – radiospiel

10

ऑटो लेआउट का उपयोग करना

सुनिश्चित करें "मार्जिन पर बाध्य करें":

0

मैं इस सही ढंग से काम करने में सक्षम था bview आपका मुख्य देखने के एक पहले बच्चे है Resolve Auto Layout Issues मेनू के तहत Reset to Suggested Constraints का चयन करके मेरे लिए। enter image description here

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