我有同樣的問題,並已經放棄了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