2016-02-02 7 views
12

मैं परीक्षण प्रयोजनों के लिए एक वेब पेज (https://storage.googleapis.com/htmltestingbucket/nested_scroll_helper.html) है कि सिर्फ पुस्तक घटना एचटीएमएल एक निश्चित हैडरस्विफ्ट - एचटीएमएल स्क्रॉल एक WKWebView एक scrollview

जब WKWebView में पकड़ा गया के एक काउंटर प्रिंट के अंदर है कि में घटनाओं खंड में एकमात्र स्क्रॉल-सक्षम तत्व है सबकुछ ठीक है और वेबव्यू स्क्रॉल ईवेंट को पृष्ठ

भेजता है यदि मैं वेबव्यू के ऊपर और नीचे मूल तत्व जोड़ना चाहता हूं तो चीजें अधिक जटिल हो जाती हैं।

UIScrollView 
    UILabel 
    WKWebView 
    UILabel 

मैं जानता हूँ कि यह एक scrollview के अंदर एक WebView के लिए अच्छा नहीं है, लेकिन मैं HTML दस्तावेज़ में संकर सामग्री और उचित स्क्रॉल ईवेंट वाला एक स्क्रॉल अनुभव प्रदान करने के लिए है। मुझे इस मामले पर बहुत सारे प्रश्न मिले लेकिन मैं एक पूर्ण अंत तक समाधान बनाने में सक्षम नहीं था।

उत्तर

0

मूल रूप से स्क्रॉलव्यू के अंदर एक स्क्रॉलव्यू है। आप कैसे मानते हैं कि काम करेगा? मैं WebView में HTML में लेबल जोड़ दूंगा। किसी भी कारण को न देखें कि उन्हें मूल होने की आवश्यकता क्यों है।

वैकल्पिक रूप से, आप UIWebView के UIScrollView में लेबल जोड़ने का प्रयास कर सकते हैं। यह पहला सबव्यू है। सुनिश्चित नहीं है कि आपको स्क्रॉलव्यू इन्सेट को समायोजित करने की आवश्यकता है या नहीं। एचटीएमएल इंजेक्शन शायद अधिक भरोसेमंद काम करेगा।

3

अद्यतन: ठीक है मुझे यह समझने में कुछ समय लगा कि आप क्या करने की कोशिश कर रहे हैं।

मुझे पता है कि आप बाहरी स्क्रॉल व्यू को रखना चाहते हैं, लेकिन मुझे पूरा यकीन है कि आप जो करना चाहते हैं उसे प्राप्त करना संभव नहीं है (केवल तभी हो सकता है जब आप outerScrollView.delegate = webView सेट करें - लेकिन मेरे लिए काम नहीं किया मैंने कोशिश की)

मुझे लगता है कि सबसे अच्छा समाधान होगा:

  1. अपने बाहरी scrollview को दूर
  2. ऊपर और नीचे की जरूरत है पर जो कुछ भी ऊंचाई करने के लिए अपने वेब-दृश्य के लिए contentInsets निर्धारित किया है। जैसे 100pt के लिए: webView.contentInset = UIEdgeInsetsMake(100,0,100,0);

पहले (अन्य चारों ओर रास्ता) (मूल रूप से मुक्त अंतरिक्ष आप अपने contentInsets के साथ बनाया में) UIScrollView के बजाय अपने UIWebView को subview के रूप में अपने UIElements जोड़ें:

  1. अपने UIViewContro में
  2. दुकान IBOutlet के रूप में ऊंचाई बाधा अपने UIWebView की ऊंचाई बाधा सेट ller
  3. अपने viewDidLoad या स्टोरीबोर्ड
  4. में webView.scrollView.scrollEnabled = NO; सेट
  5. जैसे ही WebView लोड किया जाता है, = webView.scrollView.contentSize.height
  6. अद्यतन यह मूल्य s content height via self.webViewContentHeightConstraint.constant साथ UIWebView ऊंचाई बाधा निकालने अपनी सामग्री ऊंचाई webView.scrollView.contentSize.height
  7. कॉल [स्वयं।scrollView लेआउट IfNeeded]; सुनिश्चित करने के लिए अपने दृष्टिकोण को फिर से गाया जाता है

डॉन 'टी चरण 4 & 5 जब भी WebView किया खत्म लोड हो रहा है सामग्री

enter image description here

+0

लेकिन यह कैसे वेबव्यू स्क्रॉल के बारे में पता किया जाएगा करने के लिए भूल जाते हैं? – Luda

+0

ऐसा नहीं होगा क्योंकि आप अब वेबव्यू में स्क्रॉल नहीं करेंगे। आपके पास केवल एक स्क्रोल करने योग्य दृश्य होगा, जो वेबदृश्य को "चलाता है"। इस प्रकार आपके पास एक पूर्ण एकल स्क्रॉल अनुभव है – MarkHim

+0

मैं आपको प्राप्त करता हूं, लेकिन यह वह है जो हम खोज रहे हैं। मुझे – Luda

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