2014-08-27 63 views
0

是否有任何事件可以通知晚餐視圖?iOS如何檢查是否去webView的底部

我試着scrollViewDidScroll。但它不被稱爲。

-(void)scrollViewDidScroll: (UIScrollView*)scrollView 
{ 
    NSLog(@"At the bottom..."); 
} 
+1

是webview委託集? – Rajesh 2014-08-27 07:51:10

回答

0

您必須首先在webview中將scrollview的代理設置爲self。因此,當您滾動webview時,可能會調用scrollViewDidScroll:。所以,試試這個:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.webview.scrollview.delegate = self; 
} 

- (void)scrollViewDidScroll:(UIScrollView*)scrollview 
{ 
    CGPoint offset = scrollView.contentOffset; 

    CGRect bounds = scrollView.bounds; 

    UIEdgeInsets inset = scrollView.contentInset; 

    CGFloat currentOffset = offset.y + bounds.size.height - inset.bottom; 

    if (currentOffset - scrollView.contentSize.height <= 0) 
    { 
     NSLog(@"At the bottom..."); 
    } 
} 
+0

謝謝。添加scrollView.delegate的作品。 – 2014-08-28 08:52:24

+0

另一個問題:這個事件如何通知超級視圖? – 2014-08-28 08:53:07

+0

@JasonWu您可以調用superview的某種預定義方法來通知它。你可以使用NSNotification通知超級視圖。或者使用委託像UITableView的委託來通知超級視圖。 – SFeng 2014-08-28 15:57:10

1

如果你有web視圖的一個實例,你可以通過做, webView.scrollView得到它的滾動型的參考。其委託設置爲self像這樣:

webView.scrollView.delegate = self;

現在,確保你已經在你的類中實現UIScrollViewDelegate,你有webView的一個實例。實現下面的代碼,告訴你是否到達底部。

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { 
     float bottomEdge = scrollView.contentOffset.y + scrollView.frame.size.height; 
     if (bottomEdge >= scrollView.contentSize.height) { 
      //This means that you have reached the end. 
     } 
    } 
0

要獲得滾動視圖中的委託方法調用需要分配委託像這樣的WebView滾動視圖:

webview.scrollView.delegate = self; 

也順應了UIScrollViewDelegate在.h文件中是這樣的:

@interface MyController : UIViewController <UIScrollViewDelegate> 


@end 
+0

謝謝。添加scrollView.delegate的作品。 – 2014-08-28 08:51:10