有没有可以通知晚餐视图的事件?
我尝试使用scrollViewDidScroll。但它没有被召唤。
-(void)scrollViewDidScroll: (UIScrollView*)scrollView
{
NSLog(@"At the bottom...");
}
答案 0 :(得分:1)
如果你有一个webView实例,你可以通过这样做获得其scrollView的引用,
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.
}
}
答案 1 :(得分:1)
您必须先将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...");
}
}
答案 2 :(得分:0)
要在scrollView委托方法中获取调用,您需要为webview滚动视图分配委托,如下所示:
webview.scrollView.delegate = self;
同样在.h文件中符合UIScrollViewDelegate,如下所示:
@interface MyController : UIViewController <UIScrollViewDelegate>
@end
答案 3 :(得分:0)
如果有人对如何在Swift 4中完成此操作感兴趣,请点击这里:
设置网络视图&#39; scrollView委托给viewDidLoad()self.webView.scrollView.delegate = self
从UIScrollViewDelegate
实现方法scrollViewDidScroll(),它将处理滚动事件 (此特定实现用于检查用户是否已滚动到webview内容的底部)
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let bottom = scrollView.contentOffset.y + scrollView.frame.size.height
if (bottom >= scrollView.contentSize.height) {
// Do something here
}
}