2015-11-25 3 views
7

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

क्या यह अपेक्षित व्यवहार है? क्या कोई कामकाज है जो मुझे अभी भी contentInset का उपयोग करने की अनुमति देता है?

उत्तर

4

समस्या यह है कि WKWebView हमेशा अपने फ्रेम का उपयोग अपने व्यूपोर्ट आकार के रूप में करता है, स्क्रॉल व्यू contentInset को घटाने के लिए उपेक्षा करता है। मैं stephan-leroux द्वारा workaround खोजने में सक्षम था।

विचार WKWebView के फ्रेम को मैन्युअल रूप से या ऑटोलायआउट बाधाओं का उपयोग करके वांछित व्यूपोर्ट आकार में सेट करना है। contentInset की "स्क्रॉल अंडर" प्रभाव को बहाल करने के लिए, को निष्क्रिय scrollview के masksToBounds:

wkWebview.scrollView.layer.masksToBounds = NO; 
1

weiyin के suggestion (आकार बदलने वेब दृश्य के फ्रेम) मेरे लिए काम किया।

CGFloat topInset = ...; 
web.scrollView.layer.masksToBounds = NO; 
[web.scrollView setContentInset:UIEdgeInsetsMake(topInset, 0, 0, 0)]; 
[web setFrame:CGRectMake(0, 0, web.width, web.height-topInset)]; 
:

बस एक कोड उदाहरण साझा करना चाहते थे

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