2011-12-12 15 views
15

पर स्क्रॉल स्थिति सेट करने के लिए कैसे मैं अपने uiwebview लोड लाइन पर निर्दिष्ट लाइन पर जाना चाहता हूं। मैंuiwebview

की कोशिश की [WebView stringByEvaluatingJavaScriptFromString: @ "window.scrollTo (0.0, 100.0)"];

लेकिन यह काम नहीं कर रहा है। मेरा वेबव्यू अभी भी पृष्ठ के शीर्ष से शुरू होता है। मुझे बस आश्चर्य है क्योंकि मैं UIView के अंदर लोड करता हूं। मेरी UIView पर नीचे मेरी कोड की जाँच करें:

- (void)loadView { 
    webview = [[WebViewDetail alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];  //initialize a mainView is a UIWebVIew 
    webview.managedObjectContext = self.managedObjectContext; 
    webview.kitab = self.kitab; 
    webview.currentPasal = self.pasal; 
    self.title = [NSString stringWithFormat:@"%@ %d", self.kitab, webview.currentPasal]; 
    self.view=webview; //make the mainView as the view of this controller  
} 

और मैं अपने UIWebView पर स्क्रॉल स्थिति स्क्रिप्ट डाल: इस मामले मैं अपने UIWebView पृष्ठ के तल पर जाने के लिए रखना चाहते हैं में

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    int height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue]; 

    NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height]; 
    [self stringByEvaluatingJavaScriptFromString:javascript]; 
} 

जब दृश्य लोड हो जाता है। लेकिन यह पूरी तरह से काम नहीं कर रहा है, कोई विचार क्यों? क्या मैं इसे गलत कर रहा हूं?

उत्तर

19

webview.scrollView.contentOffset = CGPointMake(0, 100); 
+0

मैं अपने UIWebView और उसके काम नहीं कर में webViewDidFinishLoad पर डाल दिया, पुस्तक अभी भी पेज के शीर्ष दिखा। कोई अन्य विचार? – dejoong

+2

@dejoong: क्या आप वाकई स्क्रॉल करने योग्य हैं? यह देखने के लिए कि क्या कुछ 'webViewDidFinishLoad' के बाद स्क्रॉल हो सकता है, यह देखने के लिए 1 सेकंड के बाद टाइमर फायरिंग पर सेट करने का प्रयास करें। – Dani

+0

tatz अजीब दानी, जब मैं विधि को आग लगाता हूं (webview.scrollView.contentOffset = CGPointMake (0, 100);) प्रत्येक 1sec इसके काम कर रहा है, लेकिन अगर मैं सीधे विधि को कॉल नहीं कर रहा हूं। क्या तुम घुटने टेकते हो? – dejoong

6

आप जहाँ आप अपने वेब दृश्य एक UIWebViewDelegate होना जरूरी दृश्य नियंत्रक सेट सुनिश्चित करें प्रयास करें, और हेडर फाइल के @interface (ज) में यह घोषणा करते हैं।

[yourWebView setDelegate:self]; 



फिर, webViewDidFinishLoad: विधि में, यह कोड डालना:

[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];