2016-06-26 8 views
6

मैं एक साधारण ऐप से शुरू करता हूं जो WKWebView का उपयोग करके एक वेब दृश्य दिखाता है। सब कुछ बनाता है, और ठीक काम करता है, सिवाय इसके कि यह हमेशा पूर्णस्क्रीन है। आदर्श रूप से यह शीर्ष पर आईओएस स्टेटस बार के तहत नहीं बढ़ेगा। इसके नीचे होने के लिए इसे 20px तक कम करने की आवश्यकता है। मैंने समाधान के लिए बड़े पैमाने पर खोज की है लेकिन आकार में कोई बदलाव नहीं आया है। इंटरफेसबिल्डर में कुछ भी सेटअप नहीं है, मैं प्रोग्रामिंग के अनुसार सबकुछ कर रहा हूं। स्विफ्ट का उपयोग करनास्क्रीन के मुकाबले एक आकार के साथ आईओएस WKWebView बनाने की कोशिश कर रहा है

ऐसा लगता है कि WKWebView के साथ कई ऐप्स ऐसा करेंगे। यह आसान होना चाहिए। मैं शायद कुछ स्पष्ट याद कर रहा हूँ। किसी भी मदद की सराहना की है। अग्रिम में धन्यवाद।

यह वही है मैं अब तक है:

import UIKit 
import WebKit 
class ViewController: UIViewController, UIGestureRecognizerDelegate , UIWebViewDelegate, WKNavigationDelegate { 

    let url = NSURL(string:"http://stackoverflow.com") 
    var webView: WKWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     webView = WKWebView(frame: CGRect(x: 0, y: 20, width: 380, height: 150), configuration: WKWebViewConfiguration()) 
     self.view = webView 
     self.view.frame = webView.frame 
     let req = NSURLRequest(URL:url!) 
     webView.loadRequest(req) 
     self.webView.allowsBackForwardNavigationGestures = true 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

बहुत धन्यवाद एमिलियो !! समायोजित कोड पूरी तरह से काम करता है!

import UIKit 
import WebKit 
class ViewController: UIViewController, UIGestureRecognizerDelegate , UIWebViewDelegate, WKNavigationDelegate { 

    let url = NSURL(string:"http://stackoverflow.com") 
    var webView: WKWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     webView = WKWebView(frame: CGRect(x: 0, y: 20, width: self.view.frame.width, height: self.view.frame.height - 20), configuration: WKWebViewConfiguration()) 
     self.view.addSubview(webView) 
     let req = NSURLRequest(URL:url!) 
     webView.loadRequest(req) 
     self.webView.allowsBackForwardNavigationGestures = true 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

उत्तर

3

आपका समस्या यह है कि UIViewControllers कुछ मायनों उनके विचार के फ्रेम का प्रबंधन करेगा में प्रस्तुत किया है। यदि आप इसे मूल रूप से रूट नियंत्रक के रूप में प्रस्तुत करते हैं, या नेविगेशन बार में, उदाहरण के लिए, फ़ेम मैन्युअल रूप से सेट करने से कोई प्रभाव नहीं पड़ेगा। (वे केवल कुछ उदाहरण हैं)।

यदि आप दृश्य के फ्रेम को प्रबंधित करना चाहते हैं, तो आप अपने दृश्य नियंत्रक के view पर एक सबव्यूव के रूप में webView जोड़ सकते हैं। इसके फ्रेम को संशोधित करने के बाद काम करेगा।

self.view.frame = self.view.frame 
:

एक बात मैं कहना चाहते हैं कि self.view = webView बुला के बाद self.view.frame = webView.frame बुला बेमानी है क्योंकि वे दोनों एक ही वस्तु हैं, तो क्या आप को प्रभावी ढंग से कर रहे हैं है, है

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

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