2010-07-11 9 views
8

मुझे पता है कि आईफोन या एक्सकेसीडी आईफोन ऐप के लिए Tweetie में यह संभव है, लेकिन वे एक टेबल का उपयोग कर रहे हैं। कोई विचार अगर यह एक साधारण UIWebView के लिए भी किया जा सकता है? मुझे this SO question में जावास्क्रिप्ट सुझावों के बारे में पता है, लेकिन यह मूल रूप से बनाने के बारे में क्या है?एक UIWebView को "खींचें और छोड़ें" इशारा द्वारा रीफ्रेश कैसे करें?

उत्तर

5

FYI करें, iOS 5 आधिकारिक तौर पर संपत्ति scrollview शुरू की है UIWebView में। मैंने इसका परीक्षण किया। यह ईजीओ के पुल और ताज़ा कोड के साथ पूरी तरह से काम किया। तो समस्या अब किसी भी आईओएस 5 उपकरणों के लिए एक समस्या नहीं है।

नीचे की संगतता के लिए, आपको अभी भी @ CedricSoubrie का कोड चाहिए।

13

UIWebView पर स्क्रॉल ईवेंट प्राप्त करने के लिए मैं personnaly scrollview UIWebView के अंदर है कि प्राप्त करने के लिए इस कोड का उपयोग:

- (void) addScrollViewListener 
{ 
    UIScrollView* currentScrollView; 
    for (UIView* subView in self.myWebView.subviews) { 
     if ([subView isKindOfClass:[UIScrollView class]]) { 
      currentScrollView = (UIScrollView*)subView; 
      currentScrollView.delegate = self; 
     } 
    } 
} 

यह काम कर रहा है। आप इसे [(UIScrollView*)subView setContentOffset:offSet animated:YES]; पर कॉल करने के लिए भी उपयोग कर सकते हैं एकमात्र समस्या ऐप्पल कोड जांच को पास नहीं कर सकती है। मैं अभी तक नहीं जानता क्योंकि मैं अभी भी कोडिंग चरण में हूं।

किसी ने अभी तक कोशिश की है?

+0

मुझे एक निश्चित डेवलपर से पता है कि उसने 'UIWebView' छाया को हटाने के लिए कोड में ऐसा कुछ करने के दौरान अनुमोदन प्रक्रिया पारित की है (आपको इसके लिए' UIScrollView' भी प्राप्त करना होगा) – Joost

+0

वर्क्स आकर्षण की तरह! (हालांकि मैंने अभी तक ऐप स्टोर में अपना ऐप सबमिट नहीं किया है) –

+0

सावधान रहें, यह कोड आईओएस 5 में काम नहीं करता है क्योंकि वेबव्यू क्लास का स्क्रॉल व्यू बदल गया है। इसके बजाय इस कोड का उपयोग करें: यदि ([सबव्यू isKindOfClass: [UIScrollView क्लास]]) मैंने अपनी मूल पोस्ट बदल दी है तो कोड आईओएस 5 – CedricSoubrie

1

UIWebView में UIScrollView के लिए संदर्भ प्राप्त करने के लिए, बस इसे कठिन सबव्यूज़ द्वारा पुन: खोजकर खोजें।

for(id eachSubview in [webView subviews]){ 
     if ([eachSubview isKindOfClass:[UIScrollView class]]){ 
      scrollView = eachSubview; 
      break; 
     } 
} 

उसके बाद आप आसानी से UIWebView और UIScrollView प्रतिनिधि कॉलबैक के साथ अपने EGORefreshTableHeaderView इंटरफ़ेस करने के लिए चीजों को तार कर सकते हैं।

1

सत्य बताने के लिए, UIWebVIew क्लास में एक अनियंत्रित गेटर विधि है जिसे _scrollView कहा जाता है; तो कोड है:

scrollView = [webView _scrollView];

+0

के साथ संगत है इस तरह से चीजें करना "निजी एपीआई" का उपयोग कर रहा है। यदि आप ऊपर सेड्रिकसबरी की विधि का उपयोग करते हैं, तो आप केवल सार्वजनिक तरीकों का उपयोग कर रहे हैं। – jkp

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