iPhone - UIWebView: обнаружение прокрутки пользователем вниз страницы
Итак, у меня есть UIView с UIWebView внутри, обслуживающий локальный файл HTML (предварительный просмотр документа). У меня также есть кнопки "Принять" и "Отклонить". Мне нужно, чтобы эти кнопки появлялись только после того, как пользователь прокрутил страницу вниз. Есть ли способ захватить событие для прокрутки в нижней части UIWebView?
Я не видел хороших ответов на это, кто-нибудь может помочь?
Заранее спасибо.
4 ответа
UIWebView соответствует UIScrollViewDelegate. Таким образом, вы можете создать подкласс UIWebView (скажем, ScrollDetectWebView) и захватить вызовы UIScrollViewDelegate.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[super scrollViewDidScroll: scrollView];
// Whatever scroll detection you need to do
}
JavaScript позволяет обрабатывать событие прокрутки и отправлять сообщения в Objective-c.
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.scrollView.delegate = self;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
CGSize fittingSize = [self.webView sizeThatFits:CGSizeZero];
CGFloat height1 = scrollView.bounds.origin.y + self.webView.bounds.size.height;
CGFloat height2 = fittingSize.height;
int delta = fabs(height1 - height2);
if (delta < 30) {
NSLog(@"HELLO!!! You reached the page end!");
}
}