2011-12-12 42 views
15

Tôi muốn chỉ định dòng trên uiwebview đã tải. tôi đã cố gắngcách đặt vị trí cuộn trên uiwebview

[WebView stringByEvaluatingJavaScriptFromString: @ "window.scrollTo (0.0, 100,0)"];

nhưng không hoạt động. Chế độ xem web của tôi vẫn bắt đầu bằng đầu trang. Tôi tự hỏi vì tôi tải UIWebview bên trong UIView. Kiểm tra mã của tôi dưới đây về tôi 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  
} 

và tôi đặt vị trí kịch bản cuộn trên UIWebView tôi:

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

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

trong trường hợp này tôi muốn đưa UIWebView tôi đi đến cuối trang khi khung nhìn được tải. Nhưng nó hoàn toàn không hoạt động, bất kỳ ý tưởng tại sao? Tôi có làm sai không?

Trả lời

19

Hãy thử

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

tôi đặt nó trên webViewDidFinishLoad trong UIWebView của tôi và nó không làm việc, cuộn vẫn hiển thị trên cùng của trang. bất kỳ ý tưởng nào khác? – dejoong

+2

@dejoong: bạn có chắc là trang của mình có thể cuộn được không? hãy thử đặt nó trên bộ hẹn giờ sau 1 giây để xem có thể cuộn xuống sau 'webViewDidFinishLoad' hay không. – Dani

+0

tatz lạ Dani, khi tôi cháy phương pháp (chứa webview.scrollView.contentOffset = CGPointMake (0, 100);) cứ mỗi 1 giây nó hoạt động, nhưng nếu tôi gọi phương thức trực tiếp thì nó không hoạt động. bạn có biết tại sao không? – dejoong

6

Hãy chắc chắn rằng bạn thiết lập bộ điều khiển xem nơi bạn có xem web của bạn để trở thành một UIWebViewDelegate, và tuyên bố này trong @interface của tập tin header (.h).

[yourWebView setDelegate:self]; 



Sau đó, trong phương pháp webViewDidFinishLoad:, chèn mã này:

[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];   
Các vấn đề liên quan