我有同样的问题,并已经放弃了window.pageYOffset的时间iOS7下是 - 相同的代码所工作过我从iOS3开始!
我的解决办法:我的UIWebView的子类,我使用实现
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
方法&中,我已
CGFloat newOffY = scrollView.contentOffset.y + topLength
与topLength正在从含有设置UIViewController通过:
CGFloat topLength = 0;
CGFloat bottomLength = 0;
if([self respondsToSelector:@selector(topLayoutGuide)] && !self.isFullScreen) {
topLength = [[self topLayoutGuide] length];
bottomLength = [[self bottomLayoutGuide] length];
}
然后,您可以将newOffY
传回您的UIWebView,以便在您的JavaScript中使用。
是的,这是一个黑客攻击,但这是我现在正在iOS7下工作。 :/
(我的测试已经产生了一个理论,即window.pageYOffset现在由于iOS7中新的topLayoutGuide东西而被破坏,或者Apple已经重新实现了UIWebViews的实现方式,现在您正在滚动UIScrollView而不是UIWebView &所以javascript无法检测到由于滚动发生在较低级别的滚动?)
来源
2013-10-05 01:33:26
Nic
修复似乎是调用[超级scrollViewDidScroll:滚动视图]如果在委托上iOS7运行 – Thys